{
  "type": "File",
  "start": 0,
  "end": 4057,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 109,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 4057,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 109,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "VariableDeclaration",
        "start": 15,
        "end": 51,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 36
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 21,
            "end": 50,
            "loc": {
              "start": {
                "line": 3,
                "column": 6
              },
              "end": {
                "line": 3,
                "column": 35
              }
            },
            "id": {
              "type": "Identifier",
              "start": 21,
              "end": 26,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 6
                },
                "end": {
                  "line": 3,
                  "column": 11
                },
                "identifierName": "Utils"
              },
              "name": "Utils"
            },
            "init": {
              "type": "CallExpression",
              "start": 29,
              "end": 50,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 14
                },
                "end": {
                  "line": 3,
                  "column": 35
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 29,
                "end": 36,
                "loc": {
                  "start": {
                    "line": 3,
                    "column": 14
                  },
                  "end": {
                    "line": 3,
                    "column": 21
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 37,
                  "end": 49,
                  "loc": {
                    "start": {
                      "line": 3,
                      "column": 22
                    },
                    "end": {
                      "line": 3,
                      "column": 34
                    }
                  },
                  "extra": {
                    "rawValue": "./../utils",
                    "raw": "'./../utils'"
                  },
                  "value": "./../utils"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 52,
        "end": 80,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 28
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 58,
            "end": 79,
            "loc": {
              "start": {
                "line": 4,
                "column": 6
              },
              "end": {
                "line": 4,
                "column": 27
              }
            },
            "id": {
              "type": "Identifier",
              "start": 58,
              "end": 59,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 6
                },
                "end": {
                  "line": 4,
                  "column": 7
                },
                "identifierName": "_"
              },
              "name": "_"
            },
            "init": {
              "type": "CallExpression",
              "start": 62,
              "end": 79,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 10
                },
                "end": {
                  "line": 4,
                  "column": 27
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 62,
                "end": 69,
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 10
                  },
                  "end": {
                    "line": 4,
                    "column": 17
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 70,
                  "end": 78,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 18
                    },
                    "end": {
                      "line": 4,
                      "column": 26
                    }
                  },
                  "extra": {
                    "rawValue": "lodash",
                    "raw": "'lodash'"
                  },
                  "value": "lodash"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 81,
        "end": 117,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 36
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 87,
            "end": 116,
            "loc": {
              "start": {
                "line": 5,
                "column": 6
              },
              "end": {
                "line": 5,
                "column": 35
              }
            },
            "id": {
              "type": "Identifier",
              "start": 87,
              "end": 93,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 6
                },
                "end": {
                  "line": 5,
                  "column": 12
                },
                "identifierName": "HasOne"
              },
              "name": "HasOne"
            },
            "init": {
              "type": "CallExpression",
              "start": 96,
              "end": 116,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 15
                },
                "end": {
                  "line": 5,
                  "column": 35
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 96,
                "end": 103,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 15
                  },
                  "end": {
                    "line": 5,
                    "column": 22
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 104,
                  "end": 115,
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 23
                    },
                    "end": {
                      "line": 5,
                      "column": 34
                    }
                  },
                  "extra": {
                    "rawValue": "./has-one",
                    "raw": "'./has-one'"
                  },
                  "value": "./has-one"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 118,
        "end": 156,
        "loc": {
          "start": {
            "line": 6,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 38
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 124,
            "end": 155,
            "loc": {
              "start": {
                "line": 6,
                "column": 6
              },
              "end": {
                "line": 6,
                "column": 37
              }
            },
            "id": {
              "type": "Identifier",
              "start": 124,
              "end": 131,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 6
                },
                "end": {
                  "line": 6,
                  "column": 13
                },
                "identifierName": "HasMany"
              },
              "name": "HasMany"
            },
            "init": {
              "type": "CallExpression",
              "start": 134,
              "end": 155,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 16
                },
                "end": {
                  "line": 6,
                  "column": 37
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 134,
                "end": 141,
                "loc": {
                  "start": {
                    "line": 6,
                    "column": 16
                  },
                  "end": {
                    "line": 6,
                    "column": 23
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 142,
                  "end": 154,
                  "loc": {
                    "start": {
                      "line": 6,
                      "column": 24
                    },
                    "end": {
                      "line": 6,
                      "column": 36
                    }
                  },
                  "extra": {
                    "rawValue": "./has-many",
                    "raw": "'./has-many'"
                  },
                  "value": "./has-many"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 157,
        "end": 208,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 7,
            "column": 51
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 163,
            "end": 207,
            "loc": {
              "start": {
                "line": 7,
                "column": 6
              },
              "end": {
                "line": 7,
                "column": 50
              }
            },
            "id": {
              "type": "Identifier",
              "start": 163,
              "end": 176,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 6
                },
                "end": {
                  "line": 7,
                  "column": 19
                },
                "identifierName": "BelongsToMany"
              },
              "name": "BelongsToMany"
            },
            "init": {
              "type": "CallExpression",
              "start": 179,
              "end": 207,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 22
                },
                "end": {
                  "line": 7,
                  "column": 50
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 179,
                "end": 186,
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 22
                  },
                  "end": {
                    "line": 7,
                    "column": 29
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 187,
                  "end": 206,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 30
                    },
                    "end": {
                      "line": 7,
                      "column": 49
                    }
                  },
                  "extra": {
                    "rawValue": "./belongs-to-many",
                    "raw": "'./belongs-to-many'"
                  },
                  "value": "./belongs-to-many"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 209,
        "end": 251,
        "loc": {
          "start": {
            "line": 8,
            "column": 0
          },
          "end": {
            "line": 8,
            "column": 42
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 215,
            "end": 250,
            "loc": {
              "start": {
                "line": 8,
                "column": 6
              },
              "end": {
                "line": 8,
                "column": 41
              }
            },
            "id": {
              "type": "Identifier",
              "start": 215,
              "end": 224,
              "loc": {
                "start": {
                  "line": 8,
                  "column": 6
                },
                "end": {
                  "line": 8,
                  "column": 15
                },
                "identifierName": "BelongsTo"
              },
              "name": "BelongsTo"
            },
            "init": {
              "type": "CallExpression",
              "start": 227,
              "end": 250,
              "loc": {
                "start": {
                  "line": 8,
                  "column": 18
                },
                "end": {
                  "line": 8,
                  "column": 41
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 227,
                "end": 234,
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 18
                  },
                  "end": {
                    "line": 8,
                    "column": 25
                  },
                  "identifierName": "require"
                },
                "name": "require"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 235,
                  "end": 249,
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 26
                    },
                    "end": {
                      "line": 8,
                      "column": 40
                    }
                  },
                  "extra": {
                    "rawValue": "./belongs-to",
                    "raw": "'./belongs-to'"
                  },
                  "value": "./belongs-to"
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "VariableDeclaration",
        "start": 253,
        "end": 2896,
        "loc": {
          "start": {
            "line": 10,
            "column": 0
          },
          "end": {
            "line": 75,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 259,
            "end": 2895,
            "loc": {
              "start": {
                "line": 10,
                "column": 6
              },
              "end": {
                "line": 75,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 259,
              "end": 264,
              "loc": {
                "start": {
                  "line": 10,
                  "column": 6
                },
                "end": {
                  "line": 10,
                  "column": 11
                },
                "identifierName": "Mixin"
              },
              "name": "Mixin"
            },
            "init": {
              "type": "ObjectExpression",
              "start": 267,
              "end": 2895,
              "loc": {
                "start": {
                  "line": 10,
                  "column": 14
                },
                "end": {
                  "line": 75,
                  "column": 1
                }
              },
              "properties": [
                {
                  "type": "ObjectMethod",
                  "start": 271,
                  "end": 1192,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 2
                    },
                    "end": {
                      "line": 33,
                      "column": 3
                    }
                  },
                  "method": true,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 271,
                    "end": 278,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 2
                      },
                      "end": {
                        "line": 11,
                        "column": 9
                      },
                      "identifierName": "hasMany"
                    },
                    "name": "hasMany"
                  },
                  "kind": "method",
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 279,
                      "end": 285,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 10
                        },
                        "end": {
                          "line": 11,
                          "column": 16
                        },
                        "identifierName": "target"
                      },
                      "name": "target"
                    },
                    {
                      "type": "Identifier",
                      "start": 287,
                      "end": 294,
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 18
                        },
                        "end": {
                          "line": 11,
                          "column": 25
                        },
                        "identifierName": "options"
                      },
                      "name": "options"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 296,
                    "end": 1192,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 27
                      },
                      "end": {
                        "line": 33,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 327,
                        "end": 523,
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 4
                          },
                          "end": {
                            "line": 14,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 331,
                          "end": 403,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 8
                            },
                            "end": {
                              "line": 12,
                              "column": 80
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 331,
                            "end": 348,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 8
                              },
                              "end": {
                                "line": 12,
                                "column": 25
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 332,
                              "end": 348,
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 9
                                },
                                "end": {
                                  "line": 12,
                                  "column": 25
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 332,
                                "end": 338,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 15
                                  },
                                  "identifierName": "target"
                                },
                                "name": "target",
                                "leadingComments": null
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 339,
                                "end": 348,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 25
                                  },
                                  "identifierName": "prototype"
                                },
                                "name": "prototype"
                              },
                              "computed": false,
                              "leadingComments": null
                            },
                            "extra": {
                              "parenthesizedArgument": false
                            },
                            "leadingComments": null
                          },
                          "operator": "||",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 352,
                            "end": 403,
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 29
                              },
                              "end": {
                                "line": 12,
                                "column": 80
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "BinaryExpression",
                              "start": 354,
                              "end": 402,
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 31
                                },
                                "end": {
                                  "line": 12,
                                  "column": 79
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 354,
                                "end": 370,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 354,
                                  "end": 360,
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 37
                                    },
                                    "identifierName": "target"
                                  },
                                  "name": "target"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 361,
                                  "end": 370,
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 47
                                    },
                                    "identifierName": "prototype"
                                  },
                                  "name": "prototype"
                                },
                                "computed": false
                              },
                              "operator": "instanceof",
                              "right": {
                                "type": "MemberExpression",
                                "start": 382,
                                "end": 402,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 59
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 79
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 382,
                                  "end": 396,
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 73
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 382,
                                    "end": 386,
                                    "loc": {
                                      "start": {
                                        "line": 12,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 12,
                                        "column": 63
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 387,
                                    "end": 396,
                                    "loc": {
                                      "start": {
                                        "line": 12,
                                        "column": 64
                                      },
                                      "end": {
                                        "line": 12,
                                        "column": 73
                                      },
                                      "identifierName": "sequelize"
                                    },
                                    "name": "sequelize"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 397,
                                  "end": 402,
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 74
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 79
                                    },
                                    "identifierName": "Model"
                                  },
                                  "name": "Model"
                                },
                                "computed": false
                              },
                              "extra": {
                                "parenthesized": true,
                                "parenStart": 353
                              }
                            },
                            "extra": {
                              "parenthesizedArgument": false
                            }
                          },
                          "leadingComments": null
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 405,
                          "end": 523,
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 82
                            },
                            "end": {
                              "line": 14,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ThrowStatement",
                              "start": 413,
                              "end": 517,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 6
                                },
                                "end": {
                                  "line": 13,
                                  "column": 110
                                }
                              },
                              "argument": {
                                "type": "NewExpression",
                                "start": 419,
                                "end": 516,
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 109
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 423,
                                  "end": 428,
                                  "loc": {
                                    "start": {
                                      "line": 13,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 13,
                                      "column": 21
                                    },
                                    "identifierName": "Error"
                                  },
                                  "name": "Error"
                                },
                                "arguments": [
                                  {
                                    "type": "BinaryExpression",
                                    "start": 429,
                                    "end": 515,
                                    "loc": {
                                      "start": {
                                        "line": 13,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 13,
                                        "column": 108
                                      }
                                    },
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 429,
                                      "end": 438,
                                      "loc": {
                                        "start": {
                                          "line": 13,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 13,
                                          "column": 31
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 429,
                                        "end": 433,
                                        "loc": {
                                          "start": {
                                            "line": 13,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 13,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 434,
                                        "end": 438,
                                        "loc": {
                                          "start": {
                                            "line": 13,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 13,
                                            "column": 31
                                          },
                                          "identifierName": "name"
                                        },
                                        "name": "name"
                                      },
                                      "computed": false
                                    },
                                    "operator": "+",
                                    "right": {
                                      "type": "StringLiteral",
                                      "start": 441,
                                      "end": 515,
                                      "loc": {
                                        "start": {
                                          "line": 13,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 13,
                                          "column": 108
                                        }
                                      },
                                      "extra": {
                                        "rawValue": ".hasMany called with something that's not a subclass of Sequelize.Model",
                                        "raw": "'.hasMany called with something that\\'s not a subclass of Sequelize.Model'"
                                      },
                                      "value": ".hasMany called with something that's not a subclass of Sequelize.Model"
                                    }
                                  }
                                ]
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": null,
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " testhint options:none",
                            "start": 298,
                            "end": 322,
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 29
                              },
                              "end": {
                                "line": 11,
                                "column": 53
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 529,
                        "end": 549,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 4
                          },
                          "end": {
                            "line": 16,
                            "column": 24
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 535,
                            "end": 548,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 10
                              },
                              "end": {
                                "line": 16,
                                "column": 23
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 535,
                              "end": 541,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 10
                                },
                                "end": {
                                  "line": 16,
                                  "column": 16
                                },
                                "identifierName": "source"
                              },
                              "name": "source"
                            },
                            "init": {
                              "type": "ThisExpression",
                              "start": 544,
                              "end": 548,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 19
                                },
                                "end": {
                                  "line": 16,
                                  "column": 23
                                }
                              }
                            }
                          }
                        ],
                        "kind": "const",
                        "trailingComments": [
                          {
                            "type": "CommentLine",
                            "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                            "start": 555,
                            "end": 669,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 4
                              },
                              "end": {
                                "line": 18,
                                "column": 118
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 674,
                        "end": 698,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 4
                          },
                          "end": {
                            "line": 19,
                            "column": 28
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 674,
                          "end": 697,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 4
                            },
                            "end": {
                              "line": 19,
                              "column": 27
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 674,
                            "end": 681,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 4
                              },
                              "end": {
                                "line": 19,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options",
                            "leadingComments": null
                          },
                          "right": {
                            "type": "LogicalExpression",
                            "start": 684,
                            "end": 697,
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 14
                              },
                              "end": {
                                "line": 19,
                                "column": 27
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 684,
                              "end": 691,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 14
                                },
                                "end": {
                                  "line": 19,
                                  "column": 21
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "operator": "||",
                            "right": {
                              "type": "ObjectExpression",
                              "start": 695,
                              "end": 697,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 25
                                },
                                "end": {
                                  "line": 19,
                                  "column": 27
                                }
                              },
                              "properties": []
                            }
                          },
                          "leadingComments": null
                        },
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                            "start": 555,
                            "end": 669,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 4
                              },
                              "end": {
                                "line": 18,
                                "column": 118
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 703,
                        "end": 780,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 4
                          },
                          "end": {
                            "line": 20,
                            "column": 81
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 703,
                          "end": 779,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 4
                            },
                            "end": {
                              "line": 20,
                              "column": 80
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 703,
                            "end": 716,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 4
                              },
                              "end": {
                                "line": 20,
                                "column": 17
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 703,
                              "end": 710,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 4
                                },
                                "end": {
                                  "line": 20,
                                  "column": 11
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 711,
                              "end": 716,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 12
                                },
                                "end": {
                                  "line": 20,
                                  "column": 17
                                },
                                "identifierName": "hooks"
                              },
                              "name": "hooks"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "ConditionalExpression",
                            "start": 719,
                            "end": 779,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 20
                              },
                              "end": {
                                "line": 20,
                                "column": 80
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 719,
                              "end": 746,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 20
                                },
                                "end": {
                                  "line": 20,
                                  "column": 47
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 719,
                                "end": 732,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 719,
                                  "end": 726,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 27
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 727,
                                  "end": 732,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 33
                                    },
                                    "identifierName": "hooks"
                                  },
                                  "name": "hooks"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Identifier",
                                "start": 737,
                                "end": 746,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 47
                                  },
                                  "identifierName": "undefined"
                                },
                                "name": "undefined"
                              }
                            },
                            "consequent": {
                              "type": "BooleanLiteral",
                              "start": 749,
                              "end": 754,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 50
                                },
                                "end": {
                                  "line": 20,
                                  "column": 55
                                }
                              },
                              "value": false
                            },
                            "alternate": {
                              "type": "CallExpression",
                              "start": 757,
                              "end": 779,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 58
                                },
                                "end": {
                                  "line": 20,
                                  "column": 80
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 757,
                                "end": 764,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 65
                                  },
                                  "identifierName": "Boolean"
                                },
                                "name": "Boolean"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 765,
                                  "end": 778,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 66
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 79
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 765,
                                    "end": 772,
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 66
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 73
                                      },
                                      "identifierName": "options"
                                    },
                                    "name": "options"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 773,
                                    "end": 778,
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 74
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 79
                                      },
                                      "identifierName": "hooks"
                                    },
                                    "name": "hooks"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 785,
                        "end": 818,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 37
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 785,
                          "end": 817,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 4
                            },
                            "end": {
                              "line": 21,
                              "column": 36
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 785,
                            "end": 801,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 4
                              },
                              "end": {
                                "line": 21,
                                "column": 20
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 785,
                              "end": 792,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 4
                                },
                                "end": {
                                  "line": 21,
                                  "column": 11
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 793,
                              "end": 801,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 12
                                },
                                "end": {
                                  "line": 21,
                                  "column": 20
                                },
                                "identifierName": "useHooks"
                              },
                              "name": "useHooks"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "MemberExpression",
                            "start": 804,
                            "end": 817,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 23
                              },
                              "end": {
                                "line": 21,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 804,
                              "end": 811,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 23
                                },
                                "end": {
                                  "line": 21,
                                  "column": 30
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 812,
                              "end": 817,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 31
                                },
                                "end": {
                                  "line": 21,
                                  "column": 36
                                },
                                "identifierName": "hooks"
                              },
                              "name": "hooks"
                            },
                            "computed": false
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 824,
                        "end": 887,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 4
                          },
                          "end": {
                            "line": 23,
                            "column": 67
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 824,
                          "end": 886,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 4
                            },
                            "end": {
                              "line": 23,
                              "column": 66
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 824,
                            "end": 831,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 4
                              },
                              "end": {
                                "line": 23,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "right": {
                            "type": "CallExpression",
                            "start": 834,
                            "end": 886,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 14
                              },
                              "end": {
                                "line": 23,
                                "column": 66
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 834,
                              "end": 842,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 14
                                },
                                "end": {
                                  "line": 23,
                                  "column": 22
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 834,
                                "end": 835,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 15
                                  },
                                  "identifierName": "_"
                                },
                                "name": "_"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 836,
                                "end": 842,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 22
                                  },
                                  "identifierName": "extend"
                                },
                                "name": "extend"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 843,
                                "end": 850,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 30
                                  },
                                  "identifierName": "options"
                                },
                                "name": "options"
                              },
                              {
                                "type": "CallExpression",
                                "start": 852,
                                "end": 885,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 65
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 852,
                                  "end": 858,
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 38
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 852,
                                    "end": 853,
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 33
                                      },
                                      "identifierName": "_"
                                    },
                                    "name": "_"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 854,
                                    "end": 858,
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 38
                                      },
                                      "identifierName": "omit"
                                    },
                                    "name": "omit"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 859,
                                    "end": 873,
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 53
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 859,
                                      "end": 865,
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 45
                                        },
                                        "identifierName": "source"
                                      },
                                      "name": "source"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 866,
                                      "end": 873,
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 53
                                        },
                                        "identifierName": "options"
                                      },
                                      "name": "options"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 875,
                                    "end": 884,
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 64
                                      }
                                    },
                                    "elements": [
                                      {
                                        "type": "StringLiteral",
                                        "start": 876,
                                        "end": 883,
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 63
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "hooks",
                                          "raw": "'hooks'"
                                        },
                                        "value": "hooks"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        "trailingComments": [
                          {
                            "type": "CommentLine",
                            "value": " the id is in the foreign table or in a connecting table",
                            "start": 893,
                            "end": 951,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 4
                              },
                              "end": {
                                "line": 25,
                                "column": 62
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 956,
                        "end": 1013,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 4
                          },
                          "end": {
                            "line": 26,
                            "column": 61
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 962,
                            "end": 1012,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 10
                              },
                              "end": {
                                "line": 26,
                                "column": 60
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 962,
                              "end": 973,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 10
                                },
                                "end": {
                                  "line": 26,
                                  "column": 21
                                },
                                "identifierName": "association"
                              },
                              "name": "association",
                              "leadingComments": null
                            },
                            "init": {
                              "type": "NewExpression",
                              "start": 976,
                              "end": 1012,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 24
                                },
                                "end": {
                                  "line": 26,
                                  "column": 60
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 980,
                                "end": 987,
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 35
                                  },
                                  "identifierName": "HasMany"
                                },
                                "name": "HasMany"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 988,
                                  "end": 994,
                                  "loc": {
                                    "start": {
                                      "line": 26,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 26,
                                      "column": 42
                                    },
                                    "identifierName": "source"
                                  },
                                  "name": "source"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 996,
                                  "end": 1002,
                                  "loc": {
                                    "start": {
                                      "line": 26,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 26,
                                      "column": 50
                                    },
                                    "identifierName": "target"
                                  },
                                  "name": "target"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 1004,
                                  "end": 1011,
                                  "loc": {
                                    "start": {
                                      "line": 26,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 26,
                                      "column": 59
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                }
                              ]
                            },
                            "leadingComments": null
                          }
                        ],
                        "kind": "const",
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " the id is in the foreign table or in a connecting table",
                            "start": 893,
                            "end": 951,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 4
                              },
                              "end": {
                                "line": 25,
                                "column": 62
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1018,
                        "end": 1085,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 4
                          },
                          "end": {
                            "line": 27,
                            "column": 71
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1018,
                          "end": 1084,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 4
                            },
                            "end": {
                              "line": 27,
                              "column": 70
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 1018,
                            "end": 1070,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 4
                              },
                              "end": {
                                "line": 27,
                                "column": 56
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1018,
                              "end": 1037,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 4
                                },
                                "end": {
                                  "line": 27,
                                  "column": 23
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1018,
                                "end": 1024,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 10
                                  },
                                  "identifierName": "source"
                                },
                                "name": "source"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1025,
                                "end": 1037,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 23
                                  },
                                  "identifierName": "associations"
                                },
                                "name": "associations"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "MemberExpression",
                              "start": 1038,
                              "end": 1069,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 24
                                },
                                "end": {
                                  "line": 27,
                                  "column": 55
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1038,
                                "end": 1049,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 35
                                  },
                                  "identifierName": "association"
                                },
                                "name": "association"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1050,
                                "end": 1069,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 55
                                  },
                                  "identifierName": "associationAccessor"
                                },
                                "name": "associationAccessor"
                              },
                              "computed": false
                            },
                            "computed": true
                          },
                          "right": {
                            "type": "Identifier",
                            "start": 1073,
                            "end": 1084,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 59
                              },
                              "end": {
                                "line": 27,
                                "column": 70
                              },
                              "identifierName": "association"
                            },
                            "name": "association"
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1091,
                        "end": 1122,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 4
                          },
                          "end": {
                            "line": 29,
                            "column": 35
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 1091,
                          "end": 1121,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 4
                            },
                            "end": {
                              "line": 29,
                              "column": 34
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1091,
                            "end": 1119,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 4
                              },
                              "end": {
                                "line": 29,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1091,
                              "end": 1102,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 4
                                },
                                "end": {
                                  "line": 29,
                                  "column": 15
                                },
                                "identifierName": "association"
                              },
                              "name": "association"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1103,
                              "end": 1119,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 16
                                },
                                "end": {
                                  "line": 29,
                                  "column": 32
                                },
                                "identifierName": "injectAttributes"
                              },
                              "name": "injectAttributes"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1127,
                        "end": 1163,
                        "loc": {
                          "start": {
                            "line": 30,
                            "column": 4
                          },
                          "end": {
                            "line": 30,
                            "column": 40
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 1127,
                          "end": 1162,
                          "loc": {
                            "start": {
                              "line": 30,
                              "column": 4
                            },
                            "end": {
                              "line": 30,
                              "column": 39
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1127,
                            "end": 1144,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 4
                              },
                              "end": {
                                "line": 30,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1127,
                              "end": 1138,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 4
                                },
                                "end": {
                                  "line": 30,
                                  "column": 15
                                },
                                "identifierName": "association"
                              },
                              "name": "association"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1139,
                              "end": 1144,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 16
                                },
                                "end": {
                                  "line": 30,
                                  "column": 21
                                },
                                "identifierName": "mixin"
                              },
                              "name": "mixin"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 1145,
                              "end": 1161,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 22
                                },
                                "end": {
                                  "line": 30,
                                  "column": 38
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1145,
                                "end": 1151,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 28
                                  },
                                  "identifierName": "source"
                                },
                                "name": "source"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1152,
                                "end": 1161,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 38
                                  },
                                  "identifierName": "prototype"
                                },
                                "name": "prototype"
                              },
                              "computed": false
                            }
                          ]
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 1169,
                        "end": 1188,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 4
                          },
                          "end": {
                            "line": 32,
                            "column": 23
                          }
                        },
                        "argument": {
                          "type": "Identifier",
                          "start": 1176,
                          "end": 1187,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 11
                            },
                            "end": {
                              "line": 32,
                              "column": 22
                            },
                            "identifierName": "association"
                          },
                          "name": "association"
                        }
                      }
                    ],
                    "directives": []
                  }
                },
                {
                  "type": "ObjectMethod",
                  "start": 1197,
                  "end": 2336,
                  "loc": {
                    "start": {
                      "line": 35,
                      "column": 2
                    },
                    "end": {
                      "line": 57,
                      "column": 3
                    }
                  },
                  "method": true,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 1197,
                    "end": 1210,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 2
                      },
                      "end": {
                        "line": 35,
                        "column": 15
                      },
                      "identifierName": "belongsToMany"
                    },
                    "name": "belongsToMany"
                  },
                  "kind": "method",
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 1211,
                      "end": 1222,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 16
                        },
                        "end": {
                          "line": 35,
                          "column": 27
                        },
                        "identifierName": "targetModel"
                      },
                      "name": "targetModel"
                    },
                    {
                      "type": "Identifier",
                      "start": 1224,
                      "end": 1231,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 29
                        },
                        "end": {
                          "line": 35,
                          "column": 36
                        },
                        "identifierName": "options"
                      },
                      "name": "options"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 1233,
                    "end": 2336,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 38
                      },
                      "end": {
                        "line": 57,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 1264,
                        "end": 1476,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 4
                          },
                          "end": {
                            "line": 38,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 1268,
                          "end": 1350,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 90
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 1268,
                            "end": 1290,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 8
                              },
                              "end": {
                                "line": 36,
                                "column": 30
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 1269,
                              "end": 1290,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 9
                                },
                                "end": {
                                  "line": 36,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1269,
                                "end": 1280,
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 20
                                  },
                                  "identifierName": "targetModel"
                                },
                                "name": "targetModel",
                                "leadingComments": null
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1281,
                                "end": 1290,
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 30
                                  },
                                  "identifierName": "prototype"
                                },
                                "name": "prototype"
                              },
                              "computed": false,
                              "leadingComments": null
                            },
                            "extra": {
                              "parenthesizedArgument": false
                            },
                            "leadingComments": null
                          },
                          "operator": "||",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 1294,
                            "end": 1350,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 34
                              },
                              "end": {
                                "line": 36,
                                "column": 90
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "BinaryExpression",
                              "start": 1296,
                              "end": 1349,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 36
                                },
                                "end": {
                                  "line": 36,
                                  "column": 89
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 1296,
                                "end": 1317,
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 57
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1296,
                                  "end": 1307,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 47
                                    },
                                    "identifierName": "targetModel"
                                  },
                                  "name": "targetModel"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1308,
                                  "end": 1317,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 57
                                    },
                                    "identifierName": "prototype"
                                  },
                                  "name": "prototype"
                                },
                                "computed": false
                              },
                              "operator": "instanceof",
                              "right": {
                                "type": "MemberExpression",
                                "start": 1329,
                                "end": 1349,
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 69
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 89
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 1329,
                                  "end": 1343,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 69
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 83
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1329,
                                    "end": 1333,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 69
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 73
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1334,
                                    "end": 1343,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 74
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 83
                                      },
                                      "identifierName": "sequelize"
                                    },
                                    "name": "sequelize"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1344,
                                  "end": 1349,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 84
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 89
                                    },
                                    "identifierName": "Model"
                                  },
                                  "name": "Model"
                                },
                                "computed": false
                              },
                              "extra": {
                                "parenthesized": true,
                                "parenStart": 1295
                              }
                            },
                            "extra": {
                              "parenthesizedArgument": false
                            }
                          },
                          "leadingComments": null
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 1352,
                          "end": 1476,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 92
                            },
                            "end": {
                              "line": 38,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ThrowStatement",
                              "start": 1360,
                              "end": 1470,
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 6
                                },
                                "end": {
                                  "line": 37,
                                  "column": 116
                                }
                              },
                              "argument": {
                                "type": "NewExpression",
                                "start": 1366,
                                "end": 1469,
                                "loc": {
                                  "start": {
                                    "line": 37,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 37,
                                    "column": 115
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 1370,
                                  "end": 1375,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 21
                                    },
                                    "identifierName": "Error"
                                  },
                                  "name": "Error"
                                },
                                "arguments": [
                                  {
                                    "type": "BinaryExpression",
                                    "start": 1376,
                                    "end": 1468,
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 114
                                      }
                                    },
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 1376,
                                      "end": 1385,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 31
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1376,
                                        "end": 1380,
                                        "loc": {
                                          "start": {
                                            "line": 37,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 37,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1381,
                                        "end": 1385,
                                        "loc": {
                                          "start": {
                                            "line": 37,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 37,
                                            "column": 31
                                          },
                                          "identifierName": "name"
                                        },
                                        "name": "name"
                                      },
                                      "computed": false
                                    },
                                    "operator": "+",
                                    "right": {
                                      "type": "StringLiteral",
                                      "start": 1388,
                                      "end": 1468,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 114
                                        }
                                      },
                                      "extra": {
                                        "rawValue": ".belongsToMany called with something that's not a subclass of Sequelize.Model",
                                        "raw": "'.belongsToMany called with something that\\'s not a subclass of Sequelize.Model'"
                                      },
                                      "value": ".belongsToMany called with something that's not a subclass of Sequelize.Model"
                                    }
                                  }
                                ]
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": null,
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " testhint options:none",
                            "start": 1235,
                            "end": 1259,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 40
                              },
                              "end": {
                                "line": 35,
                                "column": 64
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 1482,
                        "end": 1507,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 4
                          },
                          "end": {
                            "line": 40,
                            "column": 29
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1488,
                            "end": 1506,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 10
                              },
                              "end": {
                                "line": 40,
                                "column": 28
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1488,
                              "end": 1499,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 10
                                },
                                "end": {
                                  "line": 40,
                                  "column": 21
                                },
                                "identifierName": "sourceModel"
                              },
                              "name": "sourceModel"
                            },
                            "init": {
                              "type": "ThisExpression",
                              "start": 1502,
                              "end": 1506,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 24
                                },
                                "end": {
                                  "line": 40,
                                  "column": 28
                                }
                              }
                            }
                          }
                        ],
                        "kind": "const",
                        "trailingComments": [
                          {
                            "type": "CommentLine",
                            "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                            "start": 1513,
                            "end": 1627,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 4
                              },
                              "end": {
                                "line": 42,
                                "column": 118
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1632,
                        "end": 1656,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 4
                          },
                          "end": {
                            "line": 43,
                            "column": 28
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1632,
                          "end": 1655,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 4
                            },
                            "end": {
                              "line": 43,
                              "column": 27
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 1632,
                            "end": 1639,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 4
                              },
                              "end": {
                                "line": 43,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options",
                            "leadingComments": null
                          },
                          "right": {
                            "type": "LogicalExpression",
                            "start": 1642,
                            "end": 1655,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 14
                              },
                              "end": {
                                "line": 43,
                                "column": 27
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 1642,
                              "end": 1649,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 14
                                },
                                "end": {
                                  "line": 43,
                                  "column": 21
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "operator": "||",
                            "right": {
                              "type": "ObjectExpression",
                              "start": 1653,
                              "end": 1655,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 25
                                },
                                "end": {
                                  "line": 43,
                                  "column": 27
                                }
                              },
                              "properties": []
                            }
                          },
                          "leadingComments": null
                        },
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                            "start": 1513,
                            "end": 1627,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 4
                              },
                              "end": {
                                "line": 42,
                                "column": 118
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1661,
                        "end": 1738,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 4
                          },
                          "end": {
                            "line": 44,
                            "column": 81
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1661,
                          "end": 1737,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 4
                            },
                            "end": {
                              "line": 44,
                              "column": 80
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 1661,
                            "end": 1674,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 4
                              },
                              "end": {
                                "line": 44,
                                "column": 17
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1661,
                              "end": 1668,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 4
                                },
                                "end": {
                                  "line": 44,
                                  "column": 11
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1669,
                              "end": 1674,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 12
                                },
                                "end": {
                                  "line": 44,
                                  "column": 17
                                },
                                "identifierName": "hooks"
                              },
                              "name": "hooks"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "ConditionalExpression",
                            "start": 1677,
                            "end": 1737,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 20
                              },
                              "end": {
                                "line": 44,
                                "column": 80
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 1677,
                              "end": 1704,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 20
                                },
                                "end": {
                                  "line": 44,
                                  "column": 47
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 1677,
                                "end": 1690,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1677,
                                  "end": 1684,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 27
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1685,
                                  "end": 1690,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 33
                                    },
                                    "identifierName": "hooks"
                                  },
                                  "name": "hooks"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Identifier",
                                "start": 1695,
                                "end": 1704,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 47
                                  },
                                  "identifierName": "undefined"
                                },
                                "name": "undefined"
                              }
                            },
                            "consequent": {
                              "type": "BooleanLiteral",
                              "start": 1707,
                              "end": 1712,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 50
                                },
                                "end": {
                                  "line": 44,
                                  "column": 55
                                }
                              },
                              "value": false
                            },
                            "alternate": {
                              "type": "CallExpression",
                              "start": 1715,
                              "end": 1737,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 58
                                },
                                "end": {
                                  "line": 44,
                                  "column": 80
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1715,
                                "end": 1722,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 65
                                  },
                                  "identifierName": "Boolean"
                                },
                                "name": "Boolean"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1723,
                                  "end": 1736,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 66
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 79
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1723,
                                    "end": 1730,
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 66
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 73
                                      },
                                      "identifierName": "options"
                                    },
                                    "name": "options"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1731,
                                    "end": 1736,
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 74
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 79
                                      },
                                      "identifierName": "hooks"
                                    },
                                    "name": "hooks"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1743,
                        "end": 1776,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 4
                          },
                          "end": {
                            "line": 45,
                            "column": 37
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1743,
                          "end": 1775,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 4
                            },
                            "end": {
                              "line": 45,
                              "column": 36
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 1743,
                            "end": 1759,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 4
                              },
                              "end": {
                                "line": 45,
                                "column": 20
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1743,
                              "end": 1750,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 4
                                },
                                "end": {
                                  "line": 45,
                                  "column": 11
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1751,
                              "end": 1759,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 12
                                },
                                "end": {
                                  "line": 45,
                                  "column": 20
                                },
                                "identifierName": "useHooks"
                              },
                              "name": "useHooks"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "MemberExpression",
                            "start": 1762,
                            "end": 1775,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 23
                              },
                              "end": {
                                "line": 45,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1762,
                              "end": 1769,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 23
                                },
                                "end": {
                                  "line": 45,
                                  "column": 30
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1770,
                              "end": 1775,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 31
                                },
                                "end": {
                                  "line": 45,
                                  "column": 36
                                },
                                "identifierName": "hooks"
                              },
                              "name": "hooks"
                            },
                            "computed": false
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1781,
                        "end": 1892,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 4
                          },
                          "end": {
                            "line": 46,
                            "column": 115
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1781,
                          "end": 1891,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 4
                            },
                            "end": {
                              "line": 46,
                              "column": 114
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 1781,
                            "end": 1799,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 4
                              },
                              "end": {
                                "line": 46,
                                "column": 22
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1781,
                              "end": 1788,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 4
                                },
                                "end": {
                                  "line": 46,
                                  "column": 11
                                },
                                "identifierName": "options"
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1789,
                              "end": 1799,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 12
                                },
                                "end": {
                                  "line": 46,
                                  "column": 22
                                },
                                "identifierName": "timestamps"
                              },
                              "name": "timestamps"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "ConditionalExpression",
                            "start": 1802,
                            "end": 1891,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 25
                              },
                              "end": {
                                "line": 46,
                                "column": 114
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 1802,
                              "end": 1834,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 25
                                },
                                "end": {
                                  "line": 46,
                                  "column": 57
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 1802,
                                "end": 1820,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1802,
                                  "end": 1809,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 32
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1810,
                                  "end": 1820,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 43
                                    },
                                    "identifierName": "timestamps"
                                  },
                                  "name": "timestamps"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Identifier",
                                "start": 1825,
                                "end": 1834,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 57
                                  },
                                  "identifierName": "undefined"
                                },
                                "name": "undefined"
                              }
                            },
                            "consequent": {
                              "type": "MemberExpression",
                              "start": 1837,
                              "end": 1870,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 60
                                },
                                "end": {
                                  "line": 46,
                                  "column": 93
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1837,
                                "end": 1859,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 60
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 82
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 1837,
                                  "end": 1851,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 74
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1837,
                                    "end": 1841,
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 64
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1842,
                                    "end": 1851,
                                    "loc": {
                                      "start": {
                                        "line": 46,
                                        "column": 65
                                      },
                                      "end": {
                                        "line": 46,
                                        "column": 74
                                      },
                                      "identifierName": "sequelize"
                                    },
                                    "name": "sequelize"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1852,
                                  "end": 1859,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 75
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 82
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1860,
                                "end": 1870,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 83
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 93
                                  },
                                  "identifierName": "timestamps"
                                },
                                "name": "timestamps"
                              },
                              "computed": false
                            },
                            "alternate": {
                              "type": "MemberExpression",
                              "start": 1873,
                              "end": 1891,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 96
                                },
                                "end": {
                                  "line": 46,
                                  "column": 114
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1873,
                                "end": 1880,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 96
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 103
                                  },
                                  "identifierName": "options"
                                },
                                "name": "options"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1881,
                                "end": 1891,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 104
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 114
                                  },
                                  "identifierName": "timestamps"
                                },
                                "name": "timestamps"
                              },
                              "computed": false
                            }
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 1897,
                        "end": 2005,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 4
                          },
                          "end": {
                            "line": 47,
                            "column": 112
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 1897,
                          "end": 2004,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 4
                            },
                            "end": {
                              "line": 47,
                              "column": 111
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 1897,
                            "end": 1904,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 4
                              },
                              "end": {
                                "line": 47,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "right": {
                            "type": "CallExpression",
                            "start": 1907,
                            "end": 2004,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 14
                              },
                              "end": {
                                "line": 47,
                                "column": 111
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1907,
                              "end": 1915,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 14
                                },
                                "end": {
                                  "line": 47,
                                  "column": 22
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1907,
                                "end": 1908,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 15
                                  },
                                  "identifierName": "_"
                                },
                                "name": "_"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1909,
                                "end": 1915,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 22
                                  },
                                  "identifierName": "extend"
                                },
                                "name": "extend"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 1916,
                                "end": 1923,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 30
                                  },
                                  "identifierName": "options"
                                },
                                "name": "options"
                              },
                              {
                                "type": "CallExpression",
                                "start": 1925,
                                "end": 2003,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 110
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1925,
                                  "end": 1931,
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 38
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1925,
                                    "end": 1926,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 33
                                      },
                                      "identifierName": "_"
                                    },
                                    "name": "_"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1927,
                                    "end": 1931,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 38
                                      },
                                      "identifierName": "omit"
                                    },
                                    "name": "omit"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1932,
                                    "end": 1951,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 58
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1932,
                                      "end": 1943,
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 47,
                                          "column": 50
                                        },
                                        "identifierName": "sourceModel"
                                      },
                                      "name": "sourceModel"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1944,
                                      "end": 1951,
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 47,
                                          "column": 58
                                        },
                                        "identifierName": "options"
                                      },
                                      "name": "options"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 1953,
                                    "end": 2002,
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 109
                                      }
                                    },
                                    "elements": [
                                      {
                                        "type": "StringLiteral",
                                        "start": 1954,
                                        "end": 1961,
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 61
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 68
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "hooks",
                                          "raw": "'hooks'"
                                        },
                                        "value": "hooks"
                                      },
                                      {
                                        "type": "StringLiteral",
                                        "start": 1963,
                                        "end": 1975,
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 70
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 82
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "timestamps",
                                          "raw": "'timestamps'"
                                        },
                                        "value": "timestamps"
                                      },
                                      {
                                        "type": "StringLiteral",
                                        "start": 1977,
                                        "end": 1985,
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 84
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 92
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "scopes",
                                          "raw": "'scopes'"
                                        },
                                        "value": "scopes"
                                      },
                                      {
                                        "type": "StringLiteral",
                                        "start": 1987,
                                        "end": 2001,
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 94
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 108
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "defaultScope",
                                          "raw": "'defaultScope'"
                                        },
                                        "value": "defaultScope"
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        "trailingComments": [
                          {
                            "type": "CommentLine",
                            "value": " the id is in the foreign table or in a connecting table",
                            "start": 2011,
                            "end": 2069,
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 4
                              },
                              "end": {
                                "line": 49,
                                "column": 62
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 2074,
                        "end": 2147,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 4
                          },
                          "end": {
                            "line": 50,
                            "column": 77
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2080,
                            "end": 2146,
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 10
                              },
                              "end": {
                                "line": 50,
                                "column": 76
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2080,
                              "end": 2091,
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 10
                                },
                                "end": {
                                  "line": 50,
                                  "column": 21
                                },
                                "identifierName": "association"
                              },
                              "name": "association",
                              "leadingComments": null
                            },
                            "init": {
                              "type": "NewExpression",
                              "start": 2094,
                              "end": 2146,
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 24
                                },
                                "end": {
                                  "line": 50,
                                  "column": 76
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 2098,
                                "end": 2111,
                                "loc": {
                                  "start": {
                                    "line": 50,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 50,
                                    "column": 41
                                  },
                                  "identifierName": "BelongsToMany"
                                },
                                "name": "BelongsToMany"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 2112,
                                  "end": 2123,
                                  "loc": {
                                    "start": {
                                      "line": 50,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 53
                                    },
                                    "identifierName": "sourceModel"
                                  },
                                  "name": "sourceModel"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 2125,
                                  "end": 2136,
                                  "loc": {
                                    "start": {
                                      "line": 50,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 66
                                    },
                                    "identifierName": "targetModel"
                                  },
                                  "name": "targetModel"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 2138,
                                  "end": 2145,
                                  "loc": {
                                    "start": {
                                      "line": 50,
                                      "column": 68
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 75
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                }
                              ]
                            },
                            "leadingComments": null
                          }
                        ],
                        "kind": "const",
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " the id is in the foreign table or in a connecting table",
                            "start": 2011,
                            "end": 2069,
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 4
                              },
                              "end": {
                                "line": 49,
                                "column": 62
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2152,
                        "end": 2224,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 4
                          },
                          "end": {
                            "line": 51,
                            "column": 76
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 2152,
                          "end": 2223,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 4
                            },
                            "end": {
                              "line": 51,
                              "column": 75
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 2152,
                            "end": 2209,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 4
                              },
                              "end": {
                                "line": 51,
                                "column": 61
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2152,
                              "end": 2176,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 4
                                },
                                "end": {
                                  "line": 51,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2152,
                                "end": 2163,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 15
                                  },
                                  "identifierName": "sourceModel"
                                },
                                "name": "sourceModel"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2164,
                                "end": 2176,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 28
                                  },
                                  "identifierName": "associations"
                                },
                                "name": "associations"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "MemberExpression",
                              "start": 2177,
                              "end": 2208,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 29
                                },
                                "end": {
                                  "line": 51,
                                  "column": 60
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2177,
                                "end": 2188,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 40
                                  },
                                  "identifierName": "association"
                                },
                                "name": "association"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2189,
                                "end": 2208,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 60
                                  },
                                  "identifierName": "associationAccessor"
                                },
                                "name": "associationAccessor"
                              },
                              "computed": false
                            },
                            "computed": true
                          },
                          "right": {
                            "type": "Identifier",
                            "start": 2212,
                            "end": 2223,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 64
                              },
                              "end": {
                                "line": 51,
                                "column": 75
                              },
                              "identifierName": "association"
                            },
                            "name": "association"
                          }
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2230,
                        "end": 2261,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 4
                          },
                          "end": {
                            "line": 53,
                            "column": 35
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2230,
                          "end": 2260,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 4
                            },
                            "end": {
                              "line": 53,
                              "column": 34
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2230,
                            "end": 2258,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 4
                              },
                              "end": {
                                "line": 53,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2230,
                              "end": 2241,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 4
                                },
                                "end": {
                                  "line": 53,
                                  "column": 15
                                },
                                "identifierName": "association"
                              },
                              "name": "association"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2242,
                              "end": 2258,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 16
                                },
                                "end": {
                                  "line": 53,
                                  "column": 32
                                },
                                "identifierName": "injectAttributes"
                              },
                              "name": "injectAttributes"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2266,
                        "end": 2307,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 4
                          },
                          "end": {
                            "line": 54,
                            "column": 45
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2266,
                          "end": 2306,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 4
                            },
                            "end": {
                              "line": 54,
                              "column": 44
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2266,
                            "end": 2283,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 4
                              },
                              "end": {
                                "line": 54,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2266,
                              "end": 2277,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 4
                                },
                                "end": {
                                  "line": 54,
                                  "column": 15
                                },
                                "identifierName": "association"
                              },
                              "name": "association"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2278,
                              "end": 2283,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 16
                                },
                                "end": {
                                  "line": 54,
                                  "column": 21
                                },
                                "identifierName": "mixin"
                              },
                              "name": "mixin"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 2284,
                              "end": 2305,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 22
                                },
                                "end": {
                                  "line": 54,
                                  "column": 43
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2284,
                                "end": 2295,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 33
                                  },
                                  "identifierName": "sourceModel"
                                },
                                "name": "sourceModel"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2296,
                                "end": 2305,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 43
                                  },
                                  "identifierName": "prototype"
                                },
                                "name": "prototype"
                              },
                              "computed": false
                            }
                          ]
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 2313,
                        "end": 2332,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 4
                          },
                          "end": {
                            "line": 56,
                            "column": 23
                          }
                        },
                        "argument": {
                          "type": "Identifier",
                          "start": 2320,
                          "end": 2331,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 11
                            },
                            "end": {
                              "line": 56,
                              "column": 22
                            },
                            "identifierName": "association"
                          },
                          "name": "association"
                        }
                      }
                    ],
                    "directives": []
                  }
                },
                {
                  "type": "ObjectMethod",
                  "start": 2341,
                  "end": 2473,
                  "loc": {
                    "start": {
                      "line": 59,
                      "column": 2
                    },
                    "end": {
                      "line": 61,
                      "column": 3
                    }
                  },
                  "method": true,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 2341,
                    "end": 2356,
                    "loc": {
                      "start": {
                        "line": 59,
                        "column": 2
                      },
                      "end": {
                        "line": 59,
                        "column": 17
                      },
                      "identifierName": "getAssociations"
                    },
                    "name": "getAssociations"
                  },
                  "kind": "method",
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2357,
                      "end": 2363,
                      "loc": {
                        "start": {
                          "line": 59,
                          "column": 18
                        },
                        "end": {
                          "line": 59,
                          "column": 24
                        },
                        "identifierName": "target"
                      },
                      "name": "target"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2365,
                    "end": 2473,
                    "loc": {
                      "start": {
                        "line": 59,
                        "column": 26
                      },
                      "end": {
                        "line": 61,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "ReturnStatement",
                        "start": 2371,
                        "end": 2469,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 4
                          },
                          "end": {
                            "line": 60,
                            "column": 102
                          }
                        },
                        "argument": {
                          "type": "CallExpression",
                          "start": 2378,
                          "end": 2468,
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 11
                            },
                            "end": {
                              "line": 60,
                              "column": 101
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2378,
                            "end": 2412,
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 11
                              },
                              "end": {
                                "line": 60,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "CallExpression",
                              "start": 2378,
                              "end": 2405,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 11
                                },
                                "end": {
                                  "line": 60,
                                  "column": 38
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2378,
                                "end": 2386,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 19
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2378,
                                  "end": 2379,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 11
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 12
                                    },
                                    "identifierName": "_"
                                  },
                                  "name": "_"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2380,
                                  "end": 2386,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 19
                                    },
                                    "identifierName": "values"
                                  },
                                  "name": "values"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 2387,
                                  "end": 2404,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2387,
                                    "end": 2391,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2392,
                                    "end": 2404,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 37
                                      },
                                      "identifierName": "associations"
                                    },
                                    "name": "associations"
                                  },
                                  "computed": false
                                }
                              ]
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2406,
                              "end": 2412,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 39
                                },
                                "end": {
                                  "line": 60,
                                  "column": 45
                                },
                                "identifierName": "filter"
                              },
                              "name": "filter"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "ArrowFunctionExpression",
                              "start": 2413,
                              "end": 2467,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 46
                                },
                                "end": {
                                  "line": 60,
                                  "column": 100
                                }
                              },
                              "id": null,
                              "generator": false,
                              "expression": true,
                              "async": false,
                              "params": [
                                {
                                  "type": "Identifier",
                                  "start": 2413,
                                  "end": 2424,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 57
                                    },
                                    "identifierName": "association"
                                  },
                                  "name": "association"
                                }
                              ],
                              "body": {
                                "type": "BinaryExpression",
                                "start": 2428,
                                "end": 2467,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 100
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2428,
                                  "end": 2451,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 61
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 84
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2428,
                                    "end": 2446,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 61
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 79
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2428,
                                      "end": 2439,
                                      "loc": {
                                        "start": {
                                          "line": 60,
                                          "column": 61
                                        },
                                        "end": {
                                          "line": 60,
                                          "column": 72
                                        },
                                        "identifierName": "association"
                                      },
                                      "name": "association"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2440,
                                      "end": 2446,
                                      "loc": {
                                        "start": {
                                          "line": 60,
                                          "column": 73
                                        },
                                        "end": {
                                          "line": 60,
                                          "column": 79
                                        },
                                        "identifierName": "target"
                                      },
                                      "name": "target"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2447,
                                    "end": 2451,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 80
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 84
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": false
                                },
                                "operator": "===",
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 2456,
                                  "end": 2467,
                                  "loc": {
                                    "start": {
                                      "line": 60,
                                      "column": 89
                                    },
                                    "end": {
                                      "line": 60,
                                      "column": 100
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2456,
                                    "end": 2462,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 89
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 95
                                      },
                                      "identifierName": "target"
                                    },
                                    "name": "target"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2463,
                                    "end": 2467,
                                    "loc": {
                                      "start": {
                                        "line": 60,
                                        "column": 96
                                      },
                                      "end": {
                                        "line": 60,
                                        "column": 100
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": false
                                }
                              }
                            }
                          ]
                        }
                      }
                    ],
                    "directives": []
                  }
                },
                {
                  "type": "ObjectMethod",
                  "start": 2478,
                  "end": 2728,
                  "loc": {
                    "start": {
                      "line": 63,
                      "column": 2
                    },
                    "end": {
                      "line": 66,
                      "column": 3
                    }
                  },
                  "method": true,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 2478,
                    "end": 2500,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 2
                      },
                      "end": {
                        "line": 63,
                        "column": 24
                      },
                      "identifierName": "getAssociationForAlias"
                    },
                    "name": "getAssociationForAlias"
                  },
                  "kind": "method",
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2501,
                      "end": 2507,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 25
                        },
                        "end": {
                          "line": 63,
                          "column": 31
                        },
                        "identifierName": "target"
                      },
                      "name": "target"
                    },
                    {
                      "type": "Identifier",
                      "start": 2509,
                      "end": 2514,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 33
                        },
                        "end": {
                          "line": 63,
                          "column": 38
                        },
                        "identifierName": "alias"
                      },
                      "name": "alias"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2516,
                    "end": 2728,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 40
                      },
                      "end": {
                        "line": 66,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "ReturnStatement",
                        "start": 2611,
                        "end": 2724,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 4
                          },
                          "end": {
                            "line": 65,
                            "column": 117
                          }
                        },
                        "argument": {
                          "type": "LogicalExpression",
                          "start": 2618,
                          "end": 2723,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 11
                            },
                            "end": {
                              "line": 65,
                              "column": 116
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 2618,
                            "end": 2715,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 11
                              },
                              "end": {
                                "line": 65,
                                "column": 108
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2618,
                              "end": 2651,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 11
                                },
                                "end": {
                                  "line": 65,
                                  "column": 44
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 2618,
                                "end": 2646,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 39
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2618,
                                  "end": 2638,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 11
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 31
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2618,
                                    "end": 2622,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 15
                                      }
                                    },
                                    "leadingComments": null
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2623,
                                    "end": 2638,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 31
                                      },
                                      "identifierName": "getAssociations"
                                    },
                                    "name": "getAssociations"
                                  },
                                  "computed": false,
                                  "leadingComments": null
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 2639,
                                    "end": 2645,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 38
                                      },
                                      "identifierName": "target"
                                    },
                                    "name": "target"
                                  }
                                ],
                                "leadingComments": null
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2647,
                                "end": 2651,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 44
                                  },
                                  "identifierName": "find"
                                },
                                "name": "find"
                              },
                              "computed": false,
                              "leadingComments": null
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 2652,
                                "end": 2714,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 107
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 2652,
                                    "end": 2663,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 45
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 56
                                      },
                                      "identifierName": "association"
                                    },
                                    "name": "association"
                                  }
                                ],
                                "body": {
                                  "type": "CallExpression",
                                  "start": 2667,
                                  "end": 2714,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 107
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2667,
                                    "end": 2694,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 87
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2667,
                                      "end": 2671,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 64
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2672,
                                      "end": 2694,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 65
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 87
                                        },
                                        "identifierName": "verifyAssociationAlias"
                                      },
                                      "name": "verifyAssociationAlias"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 2695,
                                      "end": 2706,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 88
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 99
                                        },
                                        "identifierName": "association"
                                      },
                                      "name": "association"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 2708,
                                      "end": 2713,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 101
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 106
                                        },
                                        "identifierName": "alias"
                                      },
                                      "name": "alias"
                                    }
                                  ]
                                }
                              }
                            ],
                            "leadingComments": null
                          },
                          "operator": "||",
                          "right": {
                            "type": "NullLiteral",
                            "start": 2719,
                            "end": 2723,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 112
                              },
                              "end": {
                                "line": 65,
                                "column": 116
                              }
                            }
                          },
                          "leadingComments": null
                        },
                        "leadingComments": [
                          {
                            "type": "CommentLine",
                            "value": " Two associations cannot have the same alias, so we can use find instead of filter",
                            "start": 2522,
                            "end": 2606,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 4
                              },
                              "end": {
                                "line": 64,
                                "column": 88
                              }
                            }
                          }
                        ]
                      }
                    ],
                    "directives": []
                  }
                },
                {
                  "type": "ObjectMethod",
                  "start": 2733,
                  "end": 2893,
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 2
                    },
                    "end": {
                      "line": 74,
                      "column": 3
                    }
                  },
                  "method": true,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 2733,
                    "end": 2755,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 2
                      },
                      "end": {
                        "line": 68,
                        "column": 24
                      },
                      "identifierName": "verifyAssociationAlias"
                    },
                    "name": "verifyAssociationAlias"
                  },
                  "kind": "method",
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2756,
                      "end": 2767,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 25
                        },
                        "end": {
                          "line": 68,
                          "column": 36
                        },
                        "identifierName": "association"
                      },
                      "name": "association"
                    },
                    {
                      "type": "Identifier",
                      "start": 2769,
                      "end": 2774,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 38
                        },
                        "end": {
                          "line": 68,
                          "column": 43
                        },
                        "identifierName": "alias"
                      },
                      "name": "alias"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2776,
                    "end": 2893,
                    "loc": {
                      "start": {
                        "line": 68,
                        "column": 45
                      },
                      "end": {
                        "line": 74,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 2782,
                        "end": 2889,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 4
                          },
                          "end": {
                            "line": 73,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "Identifier",
                          "start": 2786,
                          "end": 2791,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 8
                            },
                            "end": {
                              "line": 69,
                              "column": 13
                            },
                            "identifierName": "alias"
                          },
                          "name": "alias"
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 2793,
                          "end": 2839,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 15
                            },
                            "end": {
                              "line": 71,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "start": 2801,
                              "end": 2833,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 6
                                },
                                "end": {
                                  "line": 70,
                                  "column": 38
                                }
                              },
                              "argument": {
                                "type": "BinaryExpression",
                                "start": 2808,
                                "end": 2832,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 37
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2808,
                                  "end": 2822,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 27
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2808,
                                    "end": 2819,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 24
                                      },
                                      "identifierName": "association"
                                    },
                                    "name": "association"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2820,
                                    "end": 2822,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 27
                                      },
                                      "identifierName": "as"
                                    },
                                    "name": "as"
                                  },
                                  "computed": false
                                },
                                "operator": "===",
                                "right": {
                                  "type": "Identifier",
                                  "start": 2827,
                                  "end": 2832,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 37
                                    },
                                    "identifierName": "alias"
                                  },
                                  "name": "alias"
                                }
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": {
                          "type": "BlockStatement",
                          "start": 2845,
                          "end": 2889,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 11
                            },
                            "end": {
                              "line": 73,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "start": 2853,
                              "end": 2883,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 6
                                },
                                "end": {
                                  "line": 72,
                                  "column": 36
                                }
                              },
                              "argument": {
                                "type": "UnaryExpression",
                                "start": 2860,
                                "end": 2882,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 35
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "MemberExpression",
                                  "start": 2861,
                                  "end": 2882,
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2861,
                                    "end": 2872,
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 25
                                      },
                                      "identifierName": "association"
                                    },
                                    "name": "association"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2873,
                                    "end": 2882,
                                    "loc": {
                                      "start": {
                                        "line": 72,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 72,
                                        "column": 35
                                      },
                                      "identifierName": "isAliased"
                                    },
                                    "name": "isAliased"
                                  },
                                  "computed": false
                                },
                                "extra": {
                                  "parenthesizedArgument": false
                                }
                              }
                            }
                          ],
                          "directives": []
                        }
                      }
                    ],
                    "directives": []
                  }
                }
              ]
            }
          }
        ],
        "kind": "const",
        "trailingComments": [
          {
            "type": "CommentLine",
            "value": " The logic for hasOne and belongsTo is exactly the same",
            "start": 2898,
            "end": 2955,
            "loc": {
              "start": {
                "line": 77,
                "column": 0
              },
              "end": {
                "line": 77,
                "column": 57
              }
            }
          }
        ]
      },
      {
        "type": "FunctionDeclaration",
        "start": 2956,
        "end": 3887,
        "loc": {
          "start": {
            "line": 78,
            "column": 0
          },
          "end": {
            "line": 100,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2965,
          "end": 2977,
          "loc": {
            "start": {
              "line": 78,
              "column": 9
            },
            "end": {
              "line": 78,
              "column": 21
            },
            "identifierName": "singleLinked"
          },
          "name": "singleLinked",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 2978,
            "end": 2982,
            "loc": {
              "start": {
                "line": 78,
                "column": 22
              },
              "end": {
                "line": 78,
                "column": 26
              },
              "identifierName": "Type"
            },
            "name": "Type"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 2984,
          "end": 3887,
          "loc": {
            "start": {
              "line": 78,
              "column": 28
            },
            "end": {
              "line": 100,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 2988,
              "end": 3885,
              "loc": {
                "start": {
                  "line": 79,
                  "column": 2
                },
                "end": {
                  "line": 99,
                  "column": 4
                }
              },
              "argument": {
                "type": "FunctionExpression",
                "start": 2995,
                "end": 3884,
                "loc": {
                  "start": {
                    "line": 79,
                    "column": 9
                  },
                  "end": {
                    "line": 99,
                    "column": 3
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 3004,
                    "end": 3010,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 18
                      },
                      "end": {
                        "line": 79,
                        "column": 24
                      },
                      "identifierName": "target"
                    },
                    "name": "target"
                  },
                  {
                    "type": "Identifier",
                    "start": 3012,
                    "end": 3019,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 26
                      },
                      "end": {
                        "line": 79,
                        "column": 33
                      },
                      "identifierName": "options"
                    },
                    "name": "options"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3021,
                  "end": 3884,
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 35
                    },
                    "end": {
                      "line": 99,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 3052,
                      "end": 3286,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 4
                        },
                        "end": {
                          "line": 82,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 3056,
                        "end": 3128,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 8
                          },
                          "end": {
                            "line": 80,
                            "column": 80
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 3056,
                          "end": 3073,
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 8
                            },
                            "end": {
                              "line": 80,
                              "column": 25
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "MemberExpression",
                            "start": 3057,
                            "end": 3073,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 9
                              },
                              "end": {
                                "line": 80,
                                "column": 25
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3057,
                              "end": 3063,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 9
                                },
                                "end": {
                                  "line": 80,
                                  "column": 15
                                },
                                "identifierName": "target"
                              },
                              "name": "target",
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3064,
                              "end": 3073,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 16
                                },
                                "end": {
                                  "line": 80,
                                  "column": 25
                                },
                                "identifierName": "prototype"
                              },
                              "name": "prototype"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          },
                          "leadingComments": null
                        },
                        "operator": "||",
                        "right": {
                          "type": "UnaryExpression",
                          "start": 3077,
                          "end": 3128,
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 29
                            },
                            "end": {
                              "line": 80,
                              "column": 80
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "BinaryExpression",
                            "start": 3079,
                            "end": 3127,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 31
                              },
                              "end": {
                                "line": 80,
                                "column": 79
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 3079,
                              "end": 3095,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 31
                                },
                                "end": {
                                  "line": 80,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3079,
                                "end": 3085,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 37
                                  },
                                  "identifierName": "target"
                                },
                                "name": "target"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3086,
                                "end": 3095,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 47
                                  },
                                  "identifierName": "prototype"
                                },
                                "name": "prototype"
                              },
                              "computed": false
                            },
                            "operator": "instanceof",
                            "right": {
                              "type": "MemberExpression",
                              "start": 3107,
                              "end": 3127,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 59
                                },
                                "end": {
                                  "line": 80,
                                  "column": 79
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3107,
                                "end": 3121,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 59
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 73
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3107,
                                  "end": 3111,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 80,
                                      "column": 63
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3112,
                                  "end": 3121,
                                  "loc": {
                                    "start": {
                                      "line": 80,
                                      "column": 64
                                    },
                                    "end": {
                                      "line": 80,
                                      "column": 73
                                    },
                                    "identifierName": "sequelize"
                                  },
                                  "name": "sequelize"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3122,
                                "end": 3127,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 74
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 79
                                  },
                                  "identifierName": "Model"
                                },
                                "name": "Model"
                              },
                              "computed": false
                            },
                            "extra": {
                              "parenthesized": true,
                              "parenStart": 3078
                            }
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 3130,
                        "end": 3286,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 82
                          },
                          "end": {
                            "line": 82,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ThrowStatement",
                            "start": 3138,
                            "end": 3280,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 6
                              },
                              "end": {
                                "line": 81,
                                "column": 148
                              }
                            },
                            "argument": {
                              "type": "NewExpression",
                              "start": 3144,
                              "end": 3279,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 12
                                },
                                "end": {
                                  "line": 81,
                                  "column": 147
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 3148,
                                "end": 3153,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 21
                                  },
                                  "identifierName": "Error"
                                },
                                "name": "Error"
                              },
                              "arguments": [
                                {
                                  "type": "BinaryExpression",
                                  "start": 3154,
                                  "end": 3278,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 146
                                    }
                                  },
                                  "left": {
                                    "type": "BinaryExpression",
                                    "start": 3154,
                                    "end": 3209,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 77
                                      }
                                    },
                                    "left": {
                                      "type": "BinaryExpression",
                                      "start": 3154,
                                      "end": 3169,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 37
                                        }
                                      },
                                      "left": {
                                        "type": "MemberExpression",
                                        "start": 3154,
                                        "end": 3163,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 31
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 3154,
                                          "end": 3158,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 26
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3159,
                                          "end": 3163,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 31
                                            },
                                            "identifierName": "name"
                                          },
                                          "name": "name"
                                        },
                                        "computed": false
                                      },
                                      "operator": "+",
                                      "right": {
                                        "type": "StringLiteral",
                                        "start": 3166,
                                        "end": 3169,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 37
                                          }
                                        },
                                        "extra": {
                                          "rawValue": ".",
                                          "raw": "'.'"
                                        },
                                        "value": "."
                                      }
                                    },
                                    "operator": "+",
                                    "right": {
                                      "type": "CallExpression",
                                      "start": 3172,
                                      "end": 3209,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 77
                                        }
                                      },
                                      "callee": {
                                        "type": "MemberExpression",
                                        "start": 3172,
                                        "end": 3192,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 60
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 3172,
                                          "end": 3177,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 45
                                            },
                                            "identifierName": "Utils"
                                          },
                                          "name": "Utils"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3178,
                                          "end": 3192,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 46
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 60
                                            },
                                            "identifierName": "lowercaseFirst"
                                          },
                                          "name": "lowercaseFirst"
                                        },
                                        "computed": false
                                      },
                                      "arguments": [
                                        {
                                          "type": "CallExpression",
                                          "start": 3193,
                                          "end": 3208,
                                          "loc": {
                                            "start": {
                                              "line": 81,
                                              "column": 61
                                            },
                                            "end": {
                                              "line": 81,
                                              "column": 76
                                            }
                                          },
                                          "callee": {
                                            "type": "MemberExpression",
                                            "start": 3193,
                                            "end": 3206,
                                            "loc": {
                                              "start": {
                                                "line": 81,
                                                "column": 61
                                              },
                                              "end": {
                                                "line": 81,
                                                "column": 74
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 3193,
                                              "end": 3197,
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 61
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 65
                                                },
                                                "identifierName": "Type"
                                              },
                                              "name": "Type"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3198,
                                              "end": 3206,
                                              "loc": {
                                                "start": {
                                                  "line": 81,
                                                  "column": 66
                                                },
                                                "end": {
                                                  "line": 81,
                                                  "column": 74
                                                },
                                                "identifierName": "toString"
                                              },
                                              "name": "toString"
                                            },
                                            "computed": false
                                          },
                                          "arguments": []
                                        }
                                      ]
                                    }
                                  },
                                  "operator": "+",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 3212,
                                    "end": 3278,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 80
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 146
                                      }
                                    },
                                    "extra": {
                                      "rawValue": " called with something that's not a subclass of Sequelize.Model",
                                      "raw": "' called with something that\\'s not a subclass of Sequelize.Model'"
                                    },
                                    "value": " called with something that's not a subclass of Sequelize.Model"
                                  }
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " testhint options:none",
                          "start": 3023,
                          "end": 3047,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 37
                            },
                            "end": {
                              "line": 79,
                              "column": 61
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 3292,
                      "end": 3312,
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 4
                        },
                        "end": {
                          "line": 84,
                          "column": 24
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3298,
                          "end": 3311,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 10
                            },
                            "end": {
                              "line": 84,
                              "column": 23
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3298,
                            "end": 3304,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 10
                              },
                              "end": {
                                "line": 84,
                                "column": 16
                              },
                              "identifierName": "source"
                            },
                            "name": "source"
                          },
                          "init": {
                            "type": "ThisExpression",
                            "start": 3307,
                            "end": 3311,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 19
                              },
                              "end": {
                                "line": 84,
                                "column": 23
                              }
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                          "start": 3318,
                          "end": 3432,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 118
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3437,
                      "end": 3461,
                      "loc": {
                        "start": {
                          "line": 87,
                          "column": 4
                        },
                        "end": {
                          "line": 87,
                          "column": 28
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3437,
                        "end": 3460,
                        "loc": {
                          "start": {
                            "line": 87,
                            "column": 4
                          },
                          "end": {
                            "line": 87,
                            "column": 27
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "Identifier",
                          "start": 3437,
                          "end": 3444,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 4
                            },
                            "end": {
                              "line": 87,
                              "column": 11
                            },
                            "identifierName": "options"
                          },
                          "name": "options",
                          "leadingComments": null
                        },
                        "right": {
                          "type": "LogicalExpression",
                          "start": 3447,
                          "end": 3460,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 14
                            },
                            "end": {
                              "line": 87,
                              "column": 27
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 3447,
                            "end": 3454,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 14
                              },
                              "end": {
                                "line": 87,
                                "column": 21
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "operator": "||",
                          "right": {
                            "type": "ObjectExpression",
                            "start": 3458,
                            "end": 3460,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 25
                              },
                              "end": {
                                "line": 87,
                                "column": 27
                              }
                            },
                            "properties": []
                          }
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
                          "start": 3318,
                          "end": 3432,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 118
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3466,
                      "end": 3543,
                      "loc": {
                        "start": {
                          "line": 88,
                          "column": 4
                        },
                        "end": {
                          "line": 88,
                          "column": 81
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3466,
                        "end": 3542,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 4
                          },
                          "end": {
                            "line": 88,
                            "column": 80
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3466,
                          "end": 3479,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 4
                            },
                            "end": {
                              "line": 88,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3466,
                            "end": 3473,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 4
                              },
                              "end": {
                                "line": 88,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3474,
                            "end": 3479,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 12
                              },
                              "end": {
                                "line": 88,
                                "column": 17
                              },
                              "identifierName": "hooks"
                            },
                            "name": "hooks"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ConditionalExpression",
                          "start": 3482,
                          "end": 3542,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 20
                            },
                            "end": {
                              "line": 88,
                              "column": 80
                            }
                          },
                          "test": {
                            "type": "BinaryExpression",
                            "start": 3482,
                            "end": 3509,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 20
                              },
                              "end": {
                                "line": 88,
                                "column": 47
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 3482,
                              "end": 3495,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 20
                                },
                                "end": {
                                  "line": 88,
                                  "column": 33
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 3482,
                                "end": 3489,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 27
                                  },
                                  "identifierName": "options"
                                },
                                "name": "options"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3490,
                                "end": 3495,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 33
                                  },
                                  "identifierName": "hooks"
                                },
                                "name": "hooks"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "Identifier",
                              "start": 3500,
                              "end": 3509,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 38
                                },
                                "end": {
                                  "line": 88,
                                  "column": 47
                                },
                                "identifierName": "undefined"
                              },
                              "name": "undefined"
                            }
                          },
                          "consequent": {
                            "type": "BooleanLiteral",
                            "start": 3512,
                            "end": 3517,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 50
                              },
                              "end": {
                                "line": 88,
                                "column": 55
                              }
                            },
                            "value": false
                          },
                          "alternate": {
                            "type": "CallExpression",
                            "start": 3520,
                            "end": 3542,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 58
                              },
                              "end": {
                                "line": 88,
                                "column": 80
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 3520,
                              "end": 3527,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 58
                                },
                                "end": {
                                  "line": 88,
                                  "column": 65
                                },
                                "identifierName": "Boolean"
                              },
                              "name": "Boolean"
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 3528,
                                "end": 3541,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 79
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3528,
                                  "end": 3535,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 66
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 73
                                    },
                                    "identifierName": "options"
                                  },
                                  "name": "options"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3536,
                                  "end": 3541,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 74
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 79
                                    },
                                    "identifierName": "hooks"
                                  },
                                  "name": "hooks"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3548,
                      "end": 3581,
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 4
                        },
                        "end": {
                          "line": 89,
                          "column": 37
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3548,
                        "end": 3580,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 4
                          },
                          "end": {
                            "line": 89,
                            "column": 36
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3548,
                          "end": 3564,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 4
                            },
                            "end": {
                              "line": 89,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3548,
                            "end": 3555,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 4
                              },
                              "end": {
                                "line": 89,
                                "column": 11
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3556,
                            "end": 3564,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 12
                              },
                              "end": {
                                "line": 89,
                                "column": 20
                              },
                              "identifierName": "useHooks"
                            },
                            "name": "useHooks"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 3567,
                          "end": 3580,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 23
                            },
                            "end": {
                              "line": 89,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3567,
                            "end": 3574,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 23
                              },
                              "end": {
                                "line": 89,
                                "column": 30
                              },
                              "identifierName": "options"
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3575,
                            "end": 3580,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 31
                              },
                              "end": {
                                "line": 89,
                                "column": 36
                              },
                              "identifierName": "hooks"
                            },
                            "name": "hooks"
                          },
                          "computed": false
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " the id is in the foreign table",
                          "start": 3587,
                          "end": 3620,
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 4
                            },
                            "end": {
                              "line": 91,
                              "column": 37
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 3625,
                      "end": 3705,
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 4
                        },
                        "end": {
                          "line": 92,
                          "column": 84
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3631,
                          "end": 3704,
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 10
                            },
                            "end": {
                              "line": 92,
                              "column": 83
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3631,
                            "end": 3642,
                            "loc": {
                              "start": {
                                "line": 92,
                                "column": 10
                              },
                              "end": {
                                "line": 92,
                                "column": 21
                              },
                              "identifierName": "association"
                            },
                            "name": "association",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 3645,
                            "end": 3704,
                            "loc": {
                              "start": {
                                "line": 92,
                                "column": 24
                              },
                              "end": {
                                "line": 92,
                                "column": 83
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 3649,
                              "end": 3653,
                              "loc": {
                                "start": {
                                  "line": 92,
                                  "column": 28
                                },
                                "end": {
                                  "line": 92,
                                  "column": 32
                                },
                                "identifierName": "Type"
                              },
                              "name": "Type"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 3654,
                                "end": 3660,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 39
                                  },
                                  "identifierName": "source"
                                },
                                "name": "source"
                              },
                              {
                                "type": "Identifier",
                                "start": 3662,
                                "end": 3668,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 47
                                  },
                                  "identifierName": "target"
                                },
                                "name": "target"
                              },
                              {
                                "type": "CallExpression",
                                "start": 3670,
                                "end": 3703,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 82
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3670,
                                  "end": 3678,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 49
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 57
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3670,
                                    "end": 3671,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 50
                                      },
                                      "identifierName": "_"
                                    },
                                    "name": "_"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3672,
                                    "end": 3678,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 51
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 57
                                      },
                                      "identifierName": "extend"
                                    },
                                    "name": "extend"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 3679,
                                    "end": 3686,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 65
                                      },
                                      "identifierName": "options"
                                    },
                                    "name": "options"
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 3688,
                                    "end": 3702,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 67
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 81
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3688,
                                      "end": 3694,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 73
                                        },
                                        "identifierName": "source"
                                      },
                                      "name": "source"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3695,
                                      "end": 3702,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 74
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 81
                                        },
                                        "identifierName": "options"
                                      },
                                      "name": "options"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            ]
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "const",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " the id is in the foreign table",
                          "start": 3587,
                          "end": 3620,
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 4
                            },
                            "end": {
                              "line": 91,
                              "column": 37
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3710,
                      "end": 3777,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 4
                        },
                        "end": {
                          "line": 93,
                          "column": 71
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3710,
                        "end": 3776,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 4
                          },
                          "end": {
                            "line": 93,
                            "column": 70
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3710,
                          "end": 3762,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 4
                            },
                            "end": {
                              "line": 93,
                              "column": 56
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3710,
                            "end": 3729,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 4
                              },
                              "end": {
                                "line": 93,
                                "column": 23
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3710,
                              "end": 3716,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 4
                                },
                                "end": {
                                  "line": 93,
                                  "column": 10
                                },
                                "identifierName": "source"
                              },
                              "name": "source"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3717,
                              "end": 3729,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 11
                                },
                                "end": {
                                  "line": 93,
                                  "column": 23
                                },
                                "identifierName": "associations"
                              },
                              "name": "associations"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "MemberExpression",
                            "start": 3730,
                            "end": 3761,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 24
                              },
                              "end": {
                                "line": 93,
                                "column": 55
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3730,
                              "end": 3741,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 24
                                },
                                "end": {
                                  "line": 93,
                                  "column": 35
                                },
                                "identifierName": "association"
                              },
                              "name": "association"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3742,
                              "end": 3761,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 36
                                },
                                "end": {
                                  "line": 93,
                                  "column": 55
                                },
                                "identifierName": "associationAccessor"
                              },
                              "name": "associationAccessor"
                            },
                            "computed": false
                          },
                          "computed": true
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 3765,
                          "end": 3776,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 59
                            },
                            "end": {
                              "line": 93,
                              "column": 70
                            },
                            "identifierName": "association"
                          },
                          "name": "association"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3783,
                      "end": 3814,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 4
                        },
                        "end": {
                          "line": 95,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3783,
                        "end": 3813,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 4
                          },
                          "end": {
                            "line": 95,
                            "column": 34
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3783,
                          "end": 3811,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 4
                            },
                            "end": {
                              "line": 95,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3783,
                            "end": 3794,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 4
                              },
                              "end": {
                                "line": 95,
                                "column": 15
                              },
                              "identifierName": "association"
                            },
                            "name": "association"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3795,
                            "end": 3811,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 16
                              },
                              "end": {
                                "line": 95,
                                "column": 32
                              },
                              "identifierName": "injectAttributes"
                            },
                            "name": "injectAttributes"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3819,
                      "end": 3855,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 4
                        },
                        "end": {
                          "line": 96,
                          "column": 40
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3819,
                        "end": 3854,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 4
                          },
                          "end": {
                            "line": 96,
                            "column": 39
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3819,
                          "end": 3836,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 4
                            },
                            "end": {
                              "line": 96,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3819,
                            "end": 3830,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 4
                              },
                              "end": {
                                "line": 96,
                                "column": 15
                              },
                              "identifierName": "association"
                            },
                            "name": "association"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3831,
                            "end": 3836,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 16
                              },
                              "end": {
                                "line": 96,
                                "column": 21
                              },
                              "identifierName": "mixin"
                            },
                            "name": "mixin"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 3837,
                            "end": 3853,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 22
                              },
                              "end": {
                                "line": 96,
                                "column": 38
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3837,
                              "end": 3843,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 22
                                },
                                "end": {
                                  "line": 96,
                                  "column": 28
                                },
                                "identifierName": "source"
                              },
                              "name": "source"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3844,
                              "end": 3853,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 29
                                },
                                "end": {
                                  "line": 96,
                                  "column": 38
                                },
                                "identifierName": "prototype"
                              },
                              "name": "prototype"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 3861,
                      "end": 3880,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 4
                        },
                        "end": {
                          "line": 98,
                          "column": 23
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 3868,
                        "end": 3879,
                        "loc": {
                          "start": {
                            "line": 98,
                            "column": 11
                          },
                          "end": {
                            "line": 98,
                            "column": 22
                          },
                          "identifierName": "association"
                        },
                        "name": "association"
                      }
                    }
                  ],
                  "directives": []
                }
              }
            }
          ],
          "directives": []
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " The logic for hasOne and belongsTo is exactly the same",
            "start": 2898,
            "end": 2955,
            "loc": {
              "start": {
                "line": 77,
                "column": 0
              },
              "end": {
                "line": 77,
                "column": 57
              }
            }
          }
        ]
      },
      {
        "type": "ExpressionStatement",
        "start": 3889,
        "end": 3925,
        "loc": {
          "start": {
            "line": 102,
            "column": 0
          },
          "end": {
            "line": 102,
            "column": 36
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 3889,
          "end": 3924,
          "loc": {
            "start": {
              "line": 102,
              "column": 0
            },
            "end": {
              "line": 102,
              "column": 35
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 3889,
            "end": 3901,
            "loc": {
              "start": {
                "line": 102,
                "column": 0
              },
              "end": {
                "line": 102,
                "column": 12
              }
            },
            "object": {
              "type": "Identifier",
              "start": 3889,
              "end": 3894,
              "loc": {
                "start": {
                  "line": 102,
                  "column": 0
                },
                "end": {
                  "line": 102,
                  "column": 5
                },
                "identifierName": "Mixin"
              },
              "name": "Mixin"
            },
            "property": {
              "type": "Identifier",
              "start": 3895,
              "end": 3901,
              "loc": {
                "start": {
                  "line": 102,
                  "column": 6
                },
                "end": {
                  "line": 102,
                  "column": 12
                },
                "identifierName": "hasOne"
              },
              "name": "hasOne"
            },
            "computed": false
          },
          "right": {
            "type": "CallExpression",
            "start": 3904,
            "end": 3924,
            "loc": {
              "start": {
                "line": 102,
                "column": 15
              },
              "end": {
                "line": 102,
                "column": 35
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 3904,
              "end": 3916,
              "loc": {
                "start": {
                  "line": 102,
                  "column": 15
                },
                "end": {
                  "line": 102,
                  "column": 27
                },
                "identifierName": "singleLinked"
              },
              "name": "singleLinked"
            },
            "arguments": [
              {
                "type": "Identifier",
                "start": 3917,
                "end": 3923,
                "loc": {
                  "start": {
                    "line": 102,
                    "column": 28
                  },
                  "end": {
                    "line": 102,
                    "column": 34
                  },
                  "identifierName": "HasOne"
                },
                "name": "HasOne"
              }
            ]
          }
        }
      },
      {
        "type": "ExpressionStatement",
        "start": 3927,
        "end": 3969,
        "loc": {
          "start": {
            "line": 104,
            "column": 0
          },
          "end": {
            "line": 104,
            "column": 42
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 3927,
          "end": 3968,
          "loc": {
            "start": {
              "line": 104,
              "column": 0
            },
            "end": {
              "line": 104,
              "column": 41
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 3927,
            "end": 3942,
            "loc": {
              "start": {
                "line": 104,
                "column": 0
              },
              "end": {
                "line": 104,
                "column": 15
              }
            },
            "object": {
              "type": "Identifier",
              "start": 3927,
              "end": 3932,
              "loc": {
                "start": {
                  "line": 104,
                  "column": 0
                },
                "end": {
                  "line": 104,
                  "column": 5
                },
                "identifierName": "Mixin"
              },
              "name": "Mixin"
            },
            "property": {
              "type": "Identifier",
              "start": 3933,
              "end": 3942,
              "loc": {
                "start": {
                  "line": 104,
                  "column": 6
                },
                "end": {
                  "line": 104,
                  "column": 15
                },
                "identifierName": "belongsTo"
              },
              "name": "belongsTo"
            },
            "computed": false
          },
          "right": {
            "type": "CallExpression",
            "start": 3945,
            "end": 3968,
            "loc": {
              "start": {
                "line": 104,
                "column": 18
              },
              "end": {
                "line": 104,
                "column": 41
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 3945,
              "end": 3957,
              "loc": {
                "start": {
                  "line": 104,
                  "column": 18
                },
                "end": {
                  "line": 104,
                  "column": 30
                },
                "identifierName": "singleLinked"
              },
              "name": "singleLinked"
            },
            "arguments": [
              {
                "type": "Identifier",
                "start": 3958,
                "end": 3967,
                "loc": {
                  "start": {
                    "line": 104,
                    "column": 31
                  },
                  "end": {
                    "line": 104,
                    "column": 40
                  },
                  "identifierName": "BelongsTo"
                },
                "name": "BelongsTo"
              }
            ]
          }
        }
      },
      {
        "type": "ExpressionStatement",
        "start": 3971,
        "end": 3994,
        "loc": {
          "start": {
            "line": 106,
            "column": 0
          },
          "end": {
            "line": 106,
            "column": 23
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 3971,
          "end": 3993,
          "loc": {
            "start": {
              "line": 106,
              "column": 0
            },
            "end": {
              "line": 106,
              "column": 22
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 3971,
            "end": 3985,
            "loc": {
              "start": {
                "line": 106,
                "column": 0
              },
              "end": {
                "line": 106,
                "column": 14
              }
            },
            "object": {
              "type": "Identifier",
              "start": 3971,
              "end": 3977,
              "loc": {
                "start": {
                  "line": 106,
                  "column": 0
                },
                "end": {
                  "line": 106,
                  "column": 6
                },
                "identifierName": "module"
              },
              "name": "module"
            },
            "property": {
              "type": "Identifier",
              "start": 3978,
              "end": 3985,
              "loc": {
                "start": {
                  "line": 106,
                  "column": 7
                },
                "end": {
                  "line": 106,
                  "column": 14
                },
                "identifierName": "exports"
              },
              "name": "exports"
            },
            "computed": false
          },
          "right": {
            "type": "Identifier",
            "start": 3988,
            "end": 3993,
            "loc": {
              "start": {
                "line": 106,
                "column": 17
              },
              "end": {
                "line": 106,
                "column": 22
              },
              "identifierName": "Mixin"
            },
            "name": "Mixin"
          }
        }
      },
      {
        "type": "ExpressionStatement",
        "start": 3995,
        "end": 4024,
        "loc": {
          "start": {
            "line": 107,
            "column": 0
          },
          "end": {
            "line": 107,
            "column": 29
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 3995,
          "end": 4023,
          "loc": {
            "start": {
              "line": 107,
              "column": 0
            },
            "end": {
              "line": 107,
              "column": 28
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 3995,
            "end": 4015,
            "loc": {
              "start": {
                "line": 107,
                "column": 0
              },
              "end": {
                "line": 107,
                "column": 20
              }
            },
            "object": {
              "type": "MemberExpression",
              "start": 3995,
              "end": 4009,
              "loc": {
                "start": {
                  "line": 107,
                  "column": 0
                },
                "end": {
                  "line": 107,
                  "column": 14
                }
              },
              "object": {
                "type": "Identifier",
                "start": 3995,
                "end": 4001,
                "loc": {
                  "start": {
                    "line": 107,
                    "column": 0
                  },
                  "end": {
                    "line": 107,
                    "column": 6
                  },
                  "identifierName": "module"
                },
                "name": "module"
              },
              "property": {
                "type": "Identifier",
                "start": 4002,
                "end": 4009,
                "loc": {
                  "start": {
                    "line": 107,
                    "column": 7
                  },
                  "end": {
                    "line": 107,
                    "column": 14
                  },
                  "identifierName": "exports"
                },
                "name": "exports"
              },
              "computed": false
            },
            "property": {
              "type": "Identifier",
              "start": 4010,
              "end": 4015,
              "loc": {
                "start": {
                  "line": 107,
                  "column": 15
                },
                "end": {
                  "line": 107,
                  "column": 20
                },
                "identifierName": "Mixin"
              },
              "name": "Mixin"
            },
            "computed": false
          },
          "right": {
            "type": "Identifier",
            "start": 4018,
            "end": 4023,
            "loc": {
              "start": {
                "line": 107,
                "column": 23
              },
              "end": {
                "line": 107,
                "column": 28
              },
              "identifierName": "Mixin"
            },
            "name": "Mixin"
          }
        }
      },
      {
        "type": "ExpressionStatement",
        "start": 4025,
        "end": 4056,
        "loc": {
          "start": {
            "line": 108,
            "column": 0
          },
          "end": {
            "line": 108,
            "column": 31
          }
        },
        "expression": {
          "type": "AssignmentExpression",
          "start": 4025,
          "end": 4055,
          "loc": {
            "start": {
              "line": 108,
              "column": 0
            },
            "end": {
              "line": 108,
              "column": 30
            }
          },
          "operator": "=",
          "left": {
            "type": "MemberExpression",
            "start": 4025,
            "end": 4047,
            "loc": {
              "start": {
                "line": 108,
                "column": 0
              },
              "end": {
                "line": 108,
                "column": 22
              }
            },
            "object": {
              "type": "MemberExpression",
              "start": 4025,
              "end": 4039,
              "loc": {
                "start": {
                  "line": 108,
                  "column": 0
                },
                "end": {
                  "line": 108,
                  "column": 14
                }
              },
              "object": {
                "type": "Identifier",
                "start": 4025,
                "end": 4031,
                "loc": {
                  "start": {
                    "line": 108,
                    "column": 0
                  },
                  "end": {
                    "line": 108,
                    "column": 6
                  },
                  "identifierName": "module"
                },
                "name": "module"
              },
              "property": {
                "type": "Identifier",
                "start": 4032,
                "end": 4039,
                "loc": {
                  "start": {
                    "line": 108,
                    "column": 7
                  },
                  "end": {
                    "line": 108,
                    "column": 14
                  },
                  "identifierName": "exports"
                },
                "name": "exports"
              },
              "computed": false
            },
            "property": {
              "type": "Identifier",
              "start": 4040,
              "end": 4047,
              "loc": {
                "start": {
                  "line": 108,
                  "column": 15
                },
                "end": {
                  "line": 108,
                  "column": 22
                },
                "identifierName": "default"
              },
              "name": "default"
            },
            "computed": false
          },
          "right": {
            "type": "Identifier",
            "start": 4050,
            "end": 4055,
            "loc": {
              "start": {
                "line": 108,
                "column": 25
              },
              "end": {
                "line": 108,
                "column": 30
              },
              "identifierName": "Mixin"
            },
            "name": "Mixin"
          }
        }
      }
    ],
    "directives": [
      {
        "type": "Directive",
        "start": 0,
        "end": 13,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 13
          }
        },
        "value": {
          "type": "DirectiveLiteral",
          "start": 0,
          "end": 12,
          "loc": {
            "start": {
              "line": 1,
              "column": 0
            },
            "end": {
              "line": 1,
              "column": 12
            }
          },
          "value": "use strict",
          "extra": {
            "raw": "'use strict'",
            "rawValue": "use strict"
          }
        }
      }
    ]
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 298,
      "end": 322,
      "loc": {
        "start": {
          "line": 11,
          "column": 29
        },
        "end": {
          "line": 11,
          "column": 53
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 555,
      "end": 669,
      "loc": {
        "start": {
          "line": 18,
          "column": 4
        },
        "end": {
          "line": 18,
          "column": 118
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table or in a connecting table",
      "start": 893,
      "end": 951,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 1235,
      "end": 1259,
      "loc": {
        "start": {
          "line": 35,
          "column": 40
        },
        "end": {
          "line": 35,
          "column": 64
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 1513,
      "end": 1627,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 118
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table or in a connecting table",
      "start": 2011,
      "end": 2069,
      "loc": {
        "start": {
          "line": 49,
          "column": 4
        },
        "end": {
          "line": 49,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Two associations cannot have the same alias, so we can use find instead of filter",
      "start": 2522,
      "end": 2606,
      "loc": {
        "start": {
          "line": 64,
          "column": 4
        },
        "end": {
          "line": 64,
          "column": 88
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " The logic for hasOne and belongsTo is exactly the same",
      "start": 2898,
      "end": 2955,
      "loc": {
        "start": {
          "line": 77,
          "column": 0
        },
        "end": {
          "line": 77,
          "column": 57
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 3023,
      "end": 3047,
      "loc": {
        "start": {
          "line": 79,
          "column": 37
        },
        "end": {
          "line": 79,
          "column": 61
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 3318,
      "end": 3432,
      "loc": {
        "start": {
          "line": 86,
          "column": 4
        },
        "end": {
          "line": 86,
          "column": 118
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table",
      "start": 3587,
      "end": 3620,
      "loc": {
        "start": {
          "line": 91,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 37
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "use strict",
      "start": 0,
      "end": 12,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 12,
      "end": 13,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 13
        }
      }
    },
    {
      "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": 15,
      "end": 20,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Utils",
      "start": 21,
      "end": 26,
      "loc": {
        "start": {
          "line": 3,
          "column": 6
        },
        "end": {
          "line": 3,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 27,
      "end": 28,
      "loc": {
        "start": {
          "line": 3,
          "column": 12
        },
        "end": {
          "line": 3,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 29,
      "end": 36,
      "loc": {
        "start": {
          "line": 3,
          "column": 14
        },
        "end": {
          "line": 3,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 36,
      "end": 37,
      "loc": {
        "start": {
          "line": 3,
          "column": 21
        },
        "end": {
          "line": 3,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./../utils",
      "start": 37,
      "end": 49,
      "loc": {
        "start": {
          "line": 3,
          "column": 22
        },
        "end": {
          "line": 3,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 49,
      "end": 50,
      "loc": {
        "start": {
          "line": 3,
          "column": 34
        },
        "end": {
          "line": 3,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 50,
      "end": 51,
      "loc": {
        "start": {
          "line": 3,
          "column": 35
        },
        "end": {
          "line": 3,
          "column": 36
        }
      }
    },
    {
      "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": 52,
      "end": 57,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 58,
      "end": 59,
      "loc": {
        "start": {
          "line": 4,
          "column": 6
        },
        "end": {
          "line": 4,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 60,
      "end": 61,
      "loc": {
        "start": {
          "line": 4,
          "column": 8
        },
        "end": {
          "line": 4,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 62,
      "end": 69,
      "loc": {
        "start": {
          "line": 4,
          "column": 10
        },
        "end": {
          "line": 4,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 69,
      "end": 70,
      "loc": {
        "start": {
          "line": 4,
          "column": 17
        },
        "end": {
          "line": 4,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "lodash",
      "start": 70,
      "end": 78,
      "loc": {
        "start": {
          "line": 4,
          "column": 18
        },
        "end": {
          "line": 4,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 78,
      "end": 79,
      "loc": {
        "start": {
          "line": 4,
          "column": 26
        },
        "end": {
          "line": 4,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 79,
      "end": 80,
      "loc": {
        "start": {
          "line": 4,
          "column": 27
        },
        "end": {
          "line": 4,
          "column": 28
        }
      }
    },
    {
      "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": 81,
      "end": 86,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "HasOne",
      "start": 87,
      "end": 93,
      "loc": {
        "start": {
          "line": 5,
          "column": 6
        },
        "end": {
          "line": 5,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 94,
      "end": 95,
      "loc": {
        "start": {
          "line": 5,
          "column": 13
        },
        "end": {
          "line": 5,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 96,
      "end": 103,
      "loc": {
        "start": {
          "line": 5,
          "column": 15
        },
        "end": {
          "line": 5,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 103,
      "end": 104,
      "loc": {
        "start": {
          "line": 5,
          "column": 22
        },
        "end": {
          "line": 5,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./has-one",
      "start": 104,
      "end": 115,
      "loc": {
        "start": {
          "line": 5,
          "column": 23
        },
        "end": {
          "line": 5,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 115,
      "end": 116,
      "loc": {
        "start": {
          "line": 5,
          "column": 34
        },
        "end": {
          "line": 5,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 116,
      "end": 117,
      "loc": {
        "start": {
          "line": 5,
          "column": 35
        },
        "end": {
          "line": 5,
          "column": 36
        }
      }
    },
    {
      "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": 118,
      "end": 123,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "HasMany",
      "start": 124,
      "end": 131,
      "loc": {
        "start": {
          "line": 6,
          "column": 6
        },
        "end": {
          "line": 6,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 132,
      "end": 133,
      "loc": {
        "start": {
          "line": 6,
          "column": 14
        },
        "end": {
          "line": 6,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 134,
      "end": 141,
      "loc": {
        "start": {
          "line": 6,
          "column": 16
        },
        "end": {
          "line": 6,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 141,
      "end": 142,
      "loc": {
        "start": {
          "line": 6,
          "column": 23
        },
        "end": {
          "line": 6,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./has-many",
      "start": 142,
      "end": 154,
      "loc": {
        "start": {
          "line": 6,
          "column": 24
        },
        "end": {
          "line": 6,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 154,
      "end": 155,
      "loc": {
        "start": {
          "line": 6,
          "column": 36
        },
        "end": {
          "line": 6,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 155,
      "end": 156,
      "loc": {
        "start": {
          "line": 6,
          "column": 37
        },
        "end": {
          "line": 6,
          "column": 38
        }
      }
    },
    {
      "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": 157,
      "end": 162,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "BelongsToMany",
      "start": 163,
      "end": 176,
      "loc": {
        "start": {
          "line": 7,
          "column": 6
        },
        "end": {
          "line": 7,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 177,
      "end": 178,
      "loc": {
        "start": {
          "line": 7,
          "column": 20
        },
        "end": {
          "line": 7,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 179,
      "end": 186,
      "loc": {
        "start": {
          "line": 7,
          "column": 22
        },
        "end": {
          "line": 7,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 186,
      "end": 187,
      "loc": {
        "start": {
          "line": 7,
          "column": 29
        },
        "end": {
          "line": 7,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./belongs-to-many",
      "start": 187,
      "end": 206,
      "loc": {
        "start": {
          "line": 7,
          "column": 30
        },
        "end": {
          "line": 7,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 206,
      "end": 207,
      "loc": {
        "start": {
          "line": 7,
          "column": 49
        },
        "end": {
          "line": 7,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 207,
      "end": 208,
      "loc": {
        "start": {
          "line": 7,
          "column": 50
        },
        "end": {
          "line": 7,
          "column": 51
        }
      }
    },
    {
      "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": 209,
      "end": 214,
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 8,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "BelongsTo",
      "start": 215,
      "end": 224,
      "loc": {
        "start": {
          "line": 8,
          "column": 6
        },
        "end": {
          "line": 8,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 225,
      "end": 226,
      "loc": {
        "start": {
          "line": 8,
          "column": 16
        },
        "end": {
          "line": 8,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "require",
      "start": 227,
      "end": 234,
      "loc": {
        "start": {
          "line": 8,
          "column": 18
        },
        "end": {
          "line": 8,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 234,
      "end": 235,
      "loc": {
        "start": {
          "line": 8,
          "column": 25
        },
        "end": {
          "line": 8,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./belongs-to",
      "start": 235,
      "end": 249,
      "loc": {
        "start": {
          "line": 8,
          "column": 26
        },
        "end": {
          "line": 8,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 249,
      "end": 250,
      "loc": {
        "start": {
          "line": 8,
          "column": 40
        },
        "end": {
          "line": 8,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 250,
      "end": 251,
      "loc": {
        "start": {
          "line": 8,
          "column": 41
        },
        "end": {
          "line": 8,
          "column": 42
        }
      }
    },
    {
      "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": 253,
      "end": 258,
      "loc": {
        "start": {
          "line": 10,
          "column": 0
        },
        "end": {
          "line": 10,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 259,
      "end": 264,
      "loc": {
        "start": {
          "line": 10,
          "column": 6
        },
        "end": {
          "line": 10,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 265,
      "end": 266,
      "loc": {
        "start": {
          "line": 10,
          "column": 12
        },
        "end": {
          "line": 10,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 267,
      "end": 268,
      "loc": {
        "start": {
          "line": 10,
          "column": 14
        },
        "end": {
          "line": 10,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hasMany",
      "start": 271,
      "end": 278,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 11,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 278,
      "end": 279,
      "loc": {
        "start": {
          "line": 11,
          "column": 9
        },
        "end": {
          "line": 11,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 279,
      "end": 285,
      "loc": {
        "start": {
          "line": 11,
          "column": 10
        },
        "end": {
          "line": 11,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 285,
      "end": 286,
      "loc": {
        "start": {
          "line": 11,
          "column": 16
        },
        "end": {
          "line": 11,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 287,
      "end": 294,
      "loc": {
        "start": {
          "line": 11,
          "column": 18
        },
        "end": {
          "line": 11,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 294,
      "end": 295,
      "loc": {
        "start": {
          "line": 11,
          "column": 25
        },
        "end": {
          "line": 11,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 296,
      "end": 297,
      "loc": {
        "start": {
          "line": 11,
          "column": 27
        },
        "end": {
          "line": 11,
          "column": 28
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 298,
      "end": 322,
      "loc": {
        "start": {
          "line": 11,
          "column": 29
        },
        "end": {
          "line": 11,
          "column": 53
        }
      }
    },
    {
      "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": 327,
      "end": 329,
      "loc": {
        "start": {
          "line": 12,
          "column": 4
        },
        "end": {
          "line": 12,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 330,
      "end": 331,
      "loc": {
        "start": {
          "line": 12,
          "column": 7
        },
        "end": {
          "line": 12,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 331,
      "end": 332,
      "loc": {
        "start": {
          "line": 12,
          "column": 8
        },
        "end": {
          "line": 12,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 332,
      "end": 338,
      "loc": {
        "start": {
          "line": 12,
          "column": 9
        },
        "end": {
          "line": 12,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 338,
      "end": 339,
      "loc": {
        "start": {
          "line": 12,
          "column": 15
        },
        "end": {
          "line": 12,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 339,
      "end": 348,
      "loc": {
        "start": {
          "line": 12,
          "column": 16
        },
        "end": {
          "line": 12,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 349,
      "end": 351,
      "loc": {
        "start": {
          "line": 12,
          "column": 26
        },
        "end": {
          "line": 12,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 352,
      "end": 353,
      "loc": {
        "start": {
          "line": 12,
          "column": 29
        },
        "end": {
          "line": 12,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 353,
      "end": 354,
      "loc": {
        "start": {
          "line": 12,
          "column": 30
        },
        "end": {
          "line": 12,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 354,
      "end": 360,
      "loc": {
        "start": {
          "line": 12,
          "column": 31
        },
        "end": {
          "line": 12,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 360,
      "end": 361,
      "loc": {
        "start": {
          "line": 12,
          "column": 37
        },
        "end": {
          "line": 12,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 361,
      "end": 370,
      "loc": {
        "start": {
          "line": 12,
          "column": 38
        },
        "end": {
          "line": 12,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 371,
      "end": 381,
      "loc": {
        "start": {
          "line": 12,
          "column": 48
        },
        "end": {
          "line": 12,
          "column": 58
        }
      }
    },
    {
      "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": 382,
      "end": 386,
      "loc": {
        "start": {
          "line": 12,
          "column": 59
        },
        "end": {
          "line": 12,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 386,
      "end": 387,
      "loc": {
        "start": {
          "line": 12,
          "column": 63
        },
        "end": {
          "line": 12,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sequelize",
      "start": 387,
      "end": 396,
      "loc": {
        "start": {
          "line": 12,
          "column": 64
        },
        "end": {
          "line": 12,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 396,
      "end": 397,
      "loc": {
        "start": {
          "line": 12,
          "column": 73
        },
        "end": {
          "line": 12,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Model",
      "start": 397,
      "end": 402,
      "loc": {
        "start": {
          "line": 12,
          "column": 74
        },
        "end": {
          "line": 12,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 402,
      "end": 403,
      "loc": {
        "start": {
          "line": 12,
          "column": 79
        },
        "end": {
          "line": 12,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 403,
      "end": 404,
      "loc": {
        "start": {
          "line": 12,
          "column": 80
        },
        "end": {
          "line": 12,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 405,
      "end": 406,
      "loc": {
        "start": {
          "line": 12,
          "column": 82
        },
        "end": {
          "line": 12,
          "column": 83
        }
      }
    },
    {
      "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": 413,
      "end": 418,
      "loc": {
        "start": {
          "line": 13,
          "column": 6
        },
        "end": {
          "line": 13,
          "column": 11
        }
      }
    },
    {
      "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": 419,
      "end": 422,
      "loc": {
        "start": {
          "line": 13,
          "column": 12
        },
        "end": {
          "line": 13,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Error",
      "start": 423,
      "end": 428,
      "loc": {
        "start": {
          "line": 13,
          "column": 16
        },
        "end": {
          "line": 13,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 428,
      "end": 429,
      "loc": {
        "start": {
          "line": 13,
          "column": 21
        },
        "end": {
          "line": 13,
          "column": 22
        }
      }
    },
    {
      "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": 429,
      "end": 433,
      "loc": {
        "start": {
          "line": 13,
          "column": 22
        },
        "end": {
          "line": 13,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 433,
      "end": 434,
      "loc": {
        "start": {
          "line": 13,
          "column": 26
        },
        "end": {
          "line": 13,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 434,
      "end": 438,
      "loc": {
        "start": {
          "line": 13,
          "column": 27
        },
        "end": {
          "line": 13,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 439,
      "end": 440,
      "loc": {
        "start": {
          "line": 13,
          "column": 32
        },
        "end": {
          "line": 13,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": ".hasMany called with something that's not a subclass of Sequelize.Model",
      "start": 441,
      "end": 515,
      "loc": {
        "start": {
          "line": 13,
          "column": 34
        },
        "end": {
          "line": 13,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 515,
      "end": 516,
      "loc": {
        "start": {
          "line": 13,
          "column": 108
        },
        "end": {
          "line": 13,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 516,
      "end": 517,
      "loc": {
        "start": {
          "line": 13,
          "column": 109
        },
        "end": {
          "line": 13,
          "column": 110
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 522,
      "end": 523,
      "loc": {
        "start": {
          "line": 14,
          "column": 4
        },
        "end": {
          "line": 14,
          "column": 5
        }
      }
    },
    {
      "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": 529,
      "end": 534,
      "loc": {
        "start": {
          "line": 16,
          "column": 4
        },
        "end": {
          "line": 16,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 535,
      "end": 541,
      "loc": {
        "start": {
          "line": 16,
          "column": 10
        },
        "end": {
          "line": 16,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 542,
      "end": 543,
      "loc": {
        "start": {
          "line": 16,
          "column": 17
        },
        "end": {
          "line": 16,
          "column": 18
        }
      }
    },
    {
      "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": 544,
      "end": 548,
      "loc": {
        "start": {
          "line": 16,
          "column": 19
        },
        "end": {
          "line": 16,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 548,
      "end": 549,
      "loc": {
        "start": {
          "line": 16,
          "column": 23
        },
        "end": {
          "line": 16,
          "column": 24
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 555,
      "end": 669,
      "loc": {
        "start": {
          "line": 18,
          "column": 4
        },
        "end": {
          "line": 18,
          "column": 118
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 674,
      "end": 681,
      "loc": {
        "start": {
          "line": 19,
          "column": 4
        },
        "end": {
          "line": 19,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 682,
      "end": 683,
      "loc": {
        "start": {
          "line": 19,
          "column": 12
        },
        "end": {
          "line": 19,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 684,
      "end": 691,
      "loc": {
        "start": {
          "line": 19,
          "column": 14
        },
        "end": {
          "line": 19,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 692,
      "end": 694,
      "loc": {
        "start": {
          "line": 19,
          "column": 22
        },
        "end": {
          "line": 19,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 695,
      "end": 696,
      "loc": {
        "start": {
          "line": 19,
          "column": 25
        },
        "end": {
          "line": 19,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 696,
      "end": 697,
      "loc": {
        "start": {
          "line": 19,
          "column": 26
        },
        "end": {
          "line": 19,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 697,
      "end": 698,
      "loc": {
        "start": {
          "line": 19,
          "column": 27
        },
        "end": {
          "line": 19,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 703,
      "end": 710,
      "loc": {
        "start": {
          "line": 20,
          "column": 4
        },
        "end": {
          "line": 20,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 710,
      "end": 711,
      "loc": {
        "start": {
          "line": 20,
          "column": 11
        },
        "end": {
          "line": 20,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 711,
      "end": 716,
      "loc": {
        "start": {
          "line": 20,
          "column": 12
        },
        "end": {
          "line": 20,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 717,
      "end": 718,
      "loc": {
        "start": {
          "line": 20,
          "column": 18
        },
        "end": {
          "line": 20,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 719,
      "end": 726,
      "loc": {
        "start": {
          "line": 20,
          "column": 20
        },
        "end": {
          "line": 20,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 726,
      "end": 727,
      "loc": {
        "start": {
          "line": 20,
          "column": 27
        },
        "end": {
          "line": 20,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 727,
      "end": 732,
      "loc": {
        "start": {
          "line": 20,
          "column": 28
        },
        "end": {
          "line": 20,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 733,
      "end": 736,
      "loc": {
        "start": {
          "line": 20,
          "column": 34
        },
        "end": {
          "line": 20,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 737,
      "end": 746,
      "loc": {
        "start": {
          "line": 20,
          "column": 38
        },
        "end": {
          "line": 20,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 747,
      "end": 748,
      "loc": {
        "start": {
          "line": 20,
          "column": 48
        },
        "end": {
          "line": 20,
          "column": 49
        }
      }
    },
    {
      "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": 749,
      "end": 754,
      "loc": {
        "start": {
          "line": 20,
          "column": 50
        },
        "end": {
          "line": 20,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 755,
      "end": 756,
      "loc": {
        "start": {
          "line": 20,
          "column": 56
        },
        "end": {
          "line": 20,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Boolean",
      "start": 757,
      "end": 764,
      "loc": {
        "start": {
          "line": 20,
          "column": 58
        },
        "end": {
          "line": 20,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 764,
      "end": 765,
      "loc": {
        "start": {
          "line": 20,
          "column": 65
        },
        "end": {
          "line": 20,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 765,
      "end": 772,
      "loc": {
        "start": {
          "line": 20,
          "column": 66
        },
        "end": {
          "line": 20,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 772,
      "end": 773,
      "loc": {
        "start": {
          "line": 20,
          "column": 73
        },
        "end": {
          "line": 20,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 773,
      "end": 778,
      "loc": {
        "start": {
          "line": 20,
          "column": 74
        },
        "end": {
          "line": 20,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 778,
      "end": 779,
      "loc": {
        "start": {
          "line": 20,
          "column": 79
        },
        "end": {
          "line": 20,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 779,
      "end": 780,
      "loc": {
        "start": {
          "line": 20,
          "column": 80
        },
        "end": {
          "line": 20,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 785,
      "end": 792,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 792,
      "end": 793,
      "loc": {
        "start": {
          "line": 21,
          "column": 11
        },
        "end": {
          "line": 21,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "useHooks",
      "start": 793,
      "end": 801,
      "loc": {
        "start": {
          "line": 21,
          "column": 12
        },
        "end": {
          "line": 21,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 802,
      "end": 803,
      "loc": {
        "start": {
          "line": 21,
          "column": 21
        },
        "end": {
          "line": 21,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 804,
      "end": 811,
      "loc": {
        "start": {
          "line": 21,
          "column": 23
        },
        "end": {
          "line": 21,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 811,
      "end": 812,
      "loc": {
        "start": {
          "line": 21,
          "column": 30
        },
        "end": {
          "line": 21,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 812,
      "end": 817,
      "loc": {
        "start": {
          "line": 21,
          "column": 31
        },
        "end": {
          "line": 21,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 817,
      "end": 818,
      "loc": {
        "start": {
          "line": 21,
          "column": 36
        },
        "end": {
          "line": 21,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 824,
      "end": 831,
      "loc": {
        "start": {
          "line": 23,
          "column": 4
        },
        "end": {
          "line": 23,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 832,
      "end": 833,
      "loc": {
        "start": {
          "line": 23,
          "column": 12
        },
        "end": {
          "line": 23,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 834,
      "end": 835,
      "loc": {
        "start": {
          "line": 23,
          "column": 14
        },
        "end": {
          "line": 23,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 835,
      "end": 836,
      "loc": {
        "start": {
          "line": 23,
          "column": 15
        },
        "end": {
          "line": 23,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "extend",
      "start": 836,
      "end": 842,
      "loc": {
        "start": {
          "line": 23,
          "column": 16
        },
        "end": {
          "line": 23,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 842,
      "end": 843,
      "loc": {
        "start": {
          "line": 23,
          "column": 22
        },
        "end": {
          "line": 23,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 843,
      "end": 850,
      "loc": {
        "start": {
          "line": 23,
          "column": 23
        },
        "end": {
          "line": 23,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 850,
      "end": 851,
      "loc": {
        "start": {
          "line": 23,
          "column": 30
        },
        "end": {
          "line": 23,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 852,
      "end": 853,
      "loc": {
        "start": {
          "line": 23,
          "column": 32
        },
        "end": {
          "line": 23,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 853,
      "end": 854,
      "loc": {
        "start": {
          "line": 23,
          "column": 33
        },
        "end": {
          "line": 23,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "omit",
      "start": 854,
      "end": 858,
      "loc": {
        "start": {
          "line": 23,
          "column": 34
        },
        "end": {
          "line": 23,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 858,
      "end": 859,
      "loc": {
        "start": {
          "line": 23,
          "column": 38
        },
        "end": {
          "line": 23,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 859,
      "end": 865,
      "loc": {
        "start": {
          "line": 23,
          "column": 39
        },
        "end": {
          "line": 23,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 865,
      "end": 866,
      "loc": {
        "start": {
          "line": 23,
          "column": 45
        },
        "end": {
          "line": 23,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 866,
      "end": 873,
      "loc": {
        "start": {
          "line": 23,
          "column": 46
        },
        "end": {
          "line": 23,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 873,
      "end": 874,
      "loc": {
        "start": {
          "line": 23,
          "column": 53
        },
        "end": {
          "line": 23,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 875,
      "end": 876,
      "loc": {
        "start": {
          "line": 23,
          "column": 55
        },
        "end": {
          "line": 23,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "hooks",
      "start": 876,
      "end": 883,
      "loc": {
        "start": {
          "line": 23,
          "column": 56
        },
        "end": {
          "line": 23,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 883,
      "end": 884,
      "loc": {
        "start": {
          "line": 23,
          "column": 63
        },
        "end": {
          "line": 23,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 884,
      "end": 885,
      "loc": {
        "start": {
          "line": 23,
          "column": 64
        },
        "end": {
          "line": 23,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 885,
      "end": 886,
      "loc": {
        "start": {
          "line": 23,
          "column": 65
        },
        "end": {
          "line": 23,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 886,
      "end": 887,
      "loc": {
        "start": {
          "line": 23,
          "column": 66
        },
        "end": {
          "line": 23,
          "column": 67
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table or in a connecting table",
      "start": 893,
      "end": 951,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 62
        }
      }
    },
    {
      "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": 956,
      "end": 961,
      "loc": {
        "start": {
          "line": 26,
          "column": 4
        },
        "end": {
          "line": 26,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 962,
      "end": 973,
      "loc": {
        "start": {
          "line": 26,
          "column": 10
        },
        "end": {
          "line": 26,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 974,
      "end": 975,
      "loc": {
        "start": {
          "line": 26,
          "column": 22
        },
        "end": {
          "line": 26,
          "column": 23
        }
      }
    },
    {
      "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": 976,
      "end": 979,
      "loc": {
        "start": {
          "line": 26,
          "column": 24
        },
        "end": {
          "line": 26,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "HasMany",
      "start": 980,
      "end": 987,
      "loc": {
        "start": {
          "line": 26,
          "column": 28
        },
        "end": {
          "line": 26,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 987,
      "end": 988,
      "loc": {
        "start": {
          "line": 26,
          "column": 35
        },
        "end": {
          "line": 26,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 988,
      "end": 994,
      "loc": {
        "start": {
          "line": 26,
          "column": 36
        },
        "end": {
          "line": 26,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 994,
      "end": 995,
      "loc": {
        "start": {
          "line": 26,
          "column": 42
        },
        "end": {
          "line": 26,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 996,
      "end": 1002,
      "loc": {
        "start": {
          "line": 26,
          "column": 44
        },
        "end": {
          "line": 26,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1002,
      "end": 1003,
      "loc": {
        "start": {
          "line": 26,
          "column": 50
        },
        "end": {
          "line": 26,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1004,
      "end": 1011,
      "loc": {
        "start": {
          "line": 26,
          "column": 52
        },
        "end": {
          "line": 26,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1011,
      "end": 1012,
      "loc": {
        "start": {
          "line": 26,
          "column": 59
        },
        "end": {
          "line": 26,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1012,
      "end": 1013,
      "loc": {
        "start": {
          "line": 26,
          "column": 60
        },
        "end": {
          "line": 26,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 1018,
      "end": 1024,
      "loc": {
        "start": {
          "line": 27,
          "column": 4
        },
        "end": {
          "line": 27,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1024,
      "end": 1025,
      "loc": {
        "start": {
          "line": 27,
          "column": 10
        },
        "end": {
          "line": 27,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associations",
      "start": 1025,
      "end": 1037,
      "loc": {
        "start": {
          "line": 27,
          "column": 11
        },
        "end": {
          "line": 27,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1037,
      "end": 1038,
      "loc": {
        "start": {
          "line": 27,
          "column": 23
        },
        "end": {
          "line": 27,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 1038,
      "end": 1049,
      "loc": {
        "start": {
          "line": 27,
          "column": 24
        },
        "end": {
          "line": 27,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1049,
      "end": 1050,
      "loc": {
        "start": {
          "line": 27,
          "column": 35
        },
        "end": {
          "line": 27,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associationAccessor",
      "start": 1050,
      "end": 1069,
      "loc": {
        "start": {
          "line": 27,
          "column": 36
        },
        "end": {
          "line": 27,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1069,
      "end": 1070,
      "loc": {
        "start": {
          "line": 27,
          "column": 55
        },
        "end": {
          "line": 27,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1071,
      "end": 1072,
      "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": "association",
      "start": 1073,
      "end": 1084,
      "loc": {
        "start": {
          "line": 27,
          "column": 59
        },
        "end": {
          "line": 27,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1084,
      "end": 1085,
      "loc": {
        "start": {
          "line": 27,
          "column": 70
        },
        "end": {
          "line": 27,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 1091,
      "end": 1102,
      "loc": {
        "start": {
          "line": 29,
          "column": 4
        },
        "end": {
          "line": 29,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1102,
      "end": 1103,
      "loc": {
        "start": {
          "line": 29,
          "column": 15
        },
        "end": {
          "line": 29,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "injectAttributes",
      "start": 1103,
      "end": 1119,
      "loc": {
        "start": {
          "line": 29,
          "column": 16
        },
        "end": {
          "line": 29,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1119,
      "end": 1120,
      "loc": {
        "start": {
          "line": 29,
          "column": 32
        },
        "end": {
          "line": 29,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1120,
      "end": 1121,
      "loc": {
        "start": {
          "line": 29,
          "column": 33
        },
        "end": {
          "line": 29,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1121,
      "end": 1122,
      "loc": {
        "start": {
          "line": 29,
          "column": 34
        },
        "end": {
          "line": 29,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 1127,
      "end": 1138,
      "loc": {
        "start": {
          "line": 30,
          "column": 4
        },
        "end": {
          "line": 30,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1138,
      "end": 1139,
      "loc": {
        "start": {
          "line": 30,
          "column": 15
        },
        "end": {
          "line": 30,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mixin",
      "start": 1139,
      "end": 1144,
      "loc": {
        "start": {
          "line": 30,
          "column": 16
        },
        "end": {
          "line": 30,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1144,
      "end": 1145,
      "loc": {
        "start": {
          "line": 30,
          "column": 21
        },
        "end": {
          "line": 30,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 1145,
      "end": 1151,
      "loc": {
        "start": {
          "line": 30,
          "column": 22
        },
        "end": {
          "line": 30,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1151,
      "end": 1152,
      "loc": {
        "start": {
          "line": 30,
          "column": 28
        },
        "end": {
          "line": 30,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 1152,
      "end": 1161,
      "loc": {
        "start": {
          "line": 30,
          "column": 29
        },
        "end": {
          "line": 30,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1161,
      "end": 1162,
      "loc": {
        "start": {
          "line": 30,
          "column": 38
        },
        "end": {
          "line": 30,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1162,
      "end": 1163,
      "loc": {
        "start": {
          "line": 30,
          "column": 39
        },
        "end": {
          "line": 30,
          "column": 40
        }
      }
    },
    {
      "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": 1169,
      "end": 1175,
      "loc": {
        "start": {
          "line": 32,
          "column": 4
        },
        "end": {
          "line": 32,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 1176,
      "end": 1187,
      "loc": {
        "start": {
          "line": 32,
          "column": 11
        },
        "end": {
          "line": 32,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1187,
      "end": 1188,
      "loc": {
        "start": {
          "line": 32,
          "column": 22
        },
        "end": {
          "line": 32,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1191,
      "end": 1192,
      "loc": {
        "start": {
          "line": 33,
          "column": 2
        },
        "end": {
          "line": 33,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1192,
      "end": 1193,
      "loc": {
        "start": {
          "line": 33,
          "column": 3
        },
        "end": {
          "line": 33,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "belongsToMany",
      "start": 1197,
      "end": 1210,
      "loc": {
        "start": {
          "line": 35,
          "column": 2
        },
        "end": {
          "line": 35,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1210,
      "end": 1211,
      "loc": {
        "start": {
          "line": 35,
          "column": 15
        },
        "end": {
          "line": 35,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "targetModel",
      "start": 1211,
      "end": 1222,
      "loc": {
        "start": {
          "line": 35,
          "column": 16
        },
        "end": {
          "line": 35,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1222,
      "end": 1223,
      "loc": {
        "start": {
          "line": 35,
          "column": 27
        },
        "end": {
          "line": 35,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1224,
      "end": 1231,
      "loc": {
        "start": {
          "line": 35,
          "column": 29
        },
        "end": {
          "line": 35,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1231,
      "end": 1232,
      "loc": {
        "start": {
          "line": 35,
          "column": 36
        },
        "end": {
          "line": 35,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1233,
      "end": 1234,
      "loc": {
        "start": {
          "line": 35,
          "column": 38
        },
        "end": {
          "line": 35,
          "column": 39
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 1235,
      "end": 1259,
      "loc": {
        "start": {
          "line": 35,
          "column": 40
        },
        "end": {
          "line": 35,
          "column": 64
        }
      }
    },
    {
      "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": 1264,
      "end": 1266,
      "loc": {
        "start": {
          "line": 36,
          "column": 4
        },
        "end": {
          "line": 36,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1267,
      "end": 1268,
      "loc": {
        "start": {
          "line": 36,
          "column": 7
        },
        "end": {
          "line": 36,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 1268,
      "end": 1269,
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "targetModel",
      "start": 1269,
      "end": 1280,
      "loc": {
        "start": {
          "line": 36,
          "column": 9
        },
        "end": {
          "line": 36,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1280,
      "end": 1281,
      "loc": {
        "start": {
          "line": 36,
          "column": 20
        },
        "end": {
          "line": 36,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 1281,
      "end": 1290,
      "loc": {
        "start": {
          "line": 36,
          "column": 21
        },
        "end": {
          "line": 36,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 1291,
      "end": 1293,
      "loc": {
        "start": {
          "line": 36,
          "column": 31
        },
        "end": {
          "line": 36,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 1294,
      "end": 1295,
      "loc": {
        "start": {
          "line": 36,
          "column": 34
        },
        "end": {
          "line": 36,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1295,
      "end": 1296,
      "loc": {
        "start": {
          "line": 36,
          "column": 35
        },
        "end": {
          "line": 36,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "targetModel",
      "start": 1296,
      "end": 1307,
      "loc": {
        "start": {
          "line": 36,
          "column": 36
        },
        "end": {
          "line": 36,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1307,
      "end": 1308,
      "loc": {
        "start": {
          "line": 36,
          "column": 47
        },
        "end": {
          "line": 36,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 1308,
      "end": 1317,
      "loc": {
        "start": {
          "line": 36,
          "column": 48
        },
        "end": {
          "line": 36,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 1318,
      "end": 1328,
      "loc": {
        "start": {
          "line": 36,
          "column": 58
        },
        "end": {
          "line": 36,
          "column": 68
        }
      }
    },
    {
      "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": 1329,
      "end": 1333,
      "loc": {
        "start": {
          "line": 36,
          "column": 69
        },
        "end": {
          "line": 36,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1333,
      "end": 1334,
      "loc": {
        "start": {
          "line": 36,
          "column": 73
        },
        "end": {
          "line": 36,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sequelize",
      "start": 1334,
      "end": 1343,
      "loc": {
        "start": {
          "line": 36,
          "column": 74
        },
        "end": {
          "line": 36,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1343,
      "end": 1344,
      "loc": {
        "start": {
          "line": 36,
          "column": 83
        },
        "end": {
          "line": 36,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Model",
      "start": 1344,
      "end": 1349,
      "loc": {
        "start": {
          "line": 36,
          "column": 84
        },
        "end": {
          "line": 36,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1349,
      "end": 1350,
      "loc": {
        "start": {
          "line": 36,
          "column": 89
        },
        "end": {
          "line": 36,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1350,
      "end": 1351,
      "loc": {
        "start": {
          "line": 36,
          "column": 90
        },
        "end": {
          "line": 36,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1352,
      "end": 1353,
      "loc": {
        "start": {
          "line": 36,
          "column": 92
        },
        "end": {
          "line": 36,
          "column": 93
        }
      }
    },
    {
      "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": 1360,
      "end": 1365,
      "loc": {
        "start": {
          "line": 37,
          "column": 6
        },
        "end": {
          "line": 37,
          "column": 11
        }
      }
    },
    {
      "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": 1366,
      "end": 1369,
      "loc": {
        "start": {
          "line": 37,
          "column": 12
        },
        "end": {
          "line": 37,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Error",
      "start": 1370,
      "end": 1375,
      "loc": {
        "start": {
          "line": 37,
          "column": 16
        },
        "end": {
          "line": 37,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1375,
      "end": 1376,
      "loc": {
        "start": {
          "line": 37,
          "column": 21
        },
        "end": {
          "line": 37,
          "column": 22
        }
      }
    },
    {
      "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": 1376,
      "end": 1380,
      "loc": {
        "start": {
          "line": 37,
          "column": 22
        },
        "end": {
          "line": 37,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1380,
      "end": 1381,
      "loc": {
        "start": {
          "line": 37,
          "column": 26
        },
        "end": {
          "line": 37,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 1381,
      "end": 1385,
      "loc": {
        "start": {
          "line": 37,
          "column": 27
        },
        "end": {
          "line": 37,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 1386,
      "end": 1387,
      "loc": {
        "start": {
          "line": 37,
          "column": 32
        },
        "end": {
          "line": 37,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": ".belongsToMany called with something that's not a subclass of Sequelize.Model",
      "start": 1388,
      "end": 1468,
      "loc": {
        "start": {
          "line": 37,
          "column": 34
        },
        "end": {
          "line": 37,
          "column": 114
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1468,
      "end": 1469,
      "loc": {
        "start": {
          "line": 37,
          "column": 114
        },
        "end": {
          "line": 37,
          "column": 115
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1469,
      "end": 1470,
      "loc": {
        "start": {
          "line": 37,
          "column": 115
        },
        "end": {
          "line": 37,
          "column": 116
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1475,
      "end": 1476,
      "loc": {
        "start": {
          "line": 38,
          "column": 4
        },
        "end": {
          "line": 38,
          "column": 5
        }
      }
    },
    {
      "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": 1482,
      "end": 1487,
      "loc": {
        "start": {
          "line": 40,
          "column": 4
        },
        "end": {
          "line": 40,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sourceModel",
      "start": 1488,
      "end": 1499,
      "loc": {
        "start": {
          "line": 40,
          "column": 10
        },
        "end": {
          "line": 40,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1500,
      "end": 1501,
      "loc": {
        "start": {
          "line": 40,
          "column": 22
        },
        "end": {
          "line": 40,
          "column": 23
        }
      }
    },
    {
      "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": 1502,
      "end": 1506,
      "loc": {
        "start": {
          "line": 40,
          "column": 24
        },
        "end": {
          "line": 40,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1506,
      "end": 1507,
      "loc": {
        "start": {
          "line": 40,
          "column": 28
        },
        "end": {
          "line": 40,
          "column": 29
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 1513,
      "end": 1627,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 118
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1632,
      "end": 1639,
      "loc": {
        "start": {
          "line": 43,
          "column": 4
        },
        "end": {
          "line": 43,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1640,
      "end": 1641,
      "loc": {
        "start": {
          "line": 43,
          "column": 12
        },
        "end": {
          "line": 43,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1642,
      "end": 1649,
      "loc": {
        "start": {
          "line": 43,
          "column": 14
        },
        "end": {
          "line": 43,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 1650,
      "end": 1652,
      "loc": {
        "start": {
          "line": 43,
          "column": 22
        },
        "end": {
          "line": 43,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1653,
      "end": 1654,
      "loc": {
        "start": {
          "line": 43,
          "column": 25
        },
        "end": {
          "line": 43,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1654,
      "end": 1655,
      "loc": {
        "start": {
          "line": 43,
          "column": 26
        },
        "end": {
          "line": 43,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1655,
      "end": 1656,
      "loc": {
        "start": {
          "line": 43,
          "column": 27
        },
        "end": {
          "line": 43,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1661,
      "end": 1668,
      "loc": {
        "start": {
          "line": 44,
          "column": 4
        },
        "end": {
          "line": 44,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1668,
      "end": 1669,
      "loc": {
        "start": {
          "line": 44,
          "column": 11
        },
        "end": {
          "line": 44,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 1669,
      "end": 1674,
      "loc": {
        "start": {
          "line": 44,
          "column": 12
        },
        "end": {
          "line": 44,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1675,
      "end": 1676,
      "loc": {
        "start": {
          "line": 44,
          "column": 18
        },
        "end": {
          "line": 44,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1677,
      "end": 1684,
      "loc": {
        "start": {
          "line": 44,
          "column": 20
        },
        "end": {
          "line": 44,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1684,
      "end": 1685,
      "loc": {
        "start": {
          "line": 44,
          "column": 27
        },
        "end": {
          "line": 44,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 1685,
      "end": 1690,
      "loc": {
        "start": {
          "line": 44,
          "column": 28
        },
        "end": {
          "line": 44,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1691,
      "end": 1694,
      "loc": {
        "start": {
          "line": 44,
          "column": 34
        },
        "end": {
          "line": 44,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 1695,
      "end": 1704,
      "loc": {
        "start": {
          "line": 44,
          "column": 38
        },
        "end": {
          "line": 44,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1705,
      "end": 1706,
      "loc": {
        "start": {
          "line": 44,
          "column": 48
        },
        "end": {
          "line": 44,
          "column": 49
        }
      }
    },
    {
      "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": 1707,
      "end": 1712,
      "loc": {
        "start": {
          "line": 44,
          "column": 50
        },
        "end": {
          "line": 44,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1713,
      "end": 1714,
      "loc": {
        "start": {
          "line": 44,
          "column": 56
        },
        "end": {
          "line": 44,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Boolean",
      "start": 1715,
      "end": 1722,
      "loc": {
        "start": {
          "line": 44,
          "column": 58
        },
        "end": {
          "line": 44,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1722,
      "end": 1723,
      "loc": {
        "start": {
          "line": 44,
          "column": 65
        },
        "end": {
          "line": 44,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1723,
      "end": 1730,
      "loc": {
        "start": {
          "line": 44,
          "column": 66
        },
        "end": {
          "line": 44,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1730,
      "end": 1731,
      "loc": {
        "start": {
          "line": 44,
          "column": 73
        },
        "end": {
          "line": 44,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 1731,
      "end": 1736,
      "loc": {
        "start": {
          "line": 44,
          "column": 74
        },
        "end": {
          "line": 44,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1736,
      "end": 1737,
      "loc": {
        "start": {
          "line": 44,
          "column": 79
        },
        "end": {
          "line": 44,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1737,
      "end": 1738,
      "loc": {
        "start": {
          "line": 44,
          "column": 80
        },
        "end": {
          "line": 44,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1743,
      "end": 1750,
      "loc": {
        "start": {
          "line": 45,
          "column": 4
        },
        "end": {
          "line": 45,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1750,
      "end": 1751,
      "loc": {
        "start": {
          "line": 45,
          "column": 11
        },
        "end": {
          "line": 45,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "useHooks",
      "start": 1751,
      "end": 1759,
      "loc": {
        "start": {
          "line": 45,
          "column": 12
        },
        "end": {
          "line": 45,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1760,
      "end": 1761,
      "loc": {
        "start": {
          "line": 45,
          "column": 21
        },
        "end": {
          "line": 45,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1762,
      "end": 1769,
      "loc": {
        "start": {
          "line": 45,
          "column": 23
        },
        "end": {
          "line": 45,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1769,
      "end": 1770,
      "loc": {
        "start": {
          "line": 45,
          "column": 30
        },
        "end": {
          "line": 45,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 1770,
      "end": 1775,
      "loc": {
        "start": {
          "line": 45,
          "column": 31
        },
        "end": {
          "line": 45,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1775,
      "end": 1776,
      "loc": {
        "start": {
          "line": 45,
          "column": 36
        },
        "end": {
          "line": 45,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1781,
      "end": 1788,
      "loc": {
        "start": {
          "line": 46,
          "column": 4
        },
        "end": {
          "line": 46,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1788,
      "end": 1789,
      "loc": {
        "start": {
          "line": 46,
          "column": 11
        },
        "end": {
          "line": 46,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "timestamps",
      "start": 1789,
      "end": 1799,
      "loc": {
        "start": {
          "line": 46,
          "column": 12
        },
        "end": {
          "line": 46,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1800,
      "end": 1801,
      "loc": {
        "start": {
          "line": 46,
          "column": 23
        },
        "end": {
          "line": 46,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1802,
      "end": 1809,
      "loc": {
        "start": {
          "line": 46,
          "column": 25
        },
        "end": {
          "line": 46,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1809,
      "end": 1810,
      "loc": {
        "start": {
          "line": 46,
          "column": 32
        },
        "end": {
          "line": 46,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "timestamps",
      "start": 1810,
      "end": 1820,
      "loc": {
        "start": {
          "line": 46,
          "column": 33
        },
        "end": {
          "line": 46,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1821,
      "end": 1824,
      "loc": {
        "start": {
          "line": 46,
          "column": 44
        },
        "end": {
          "line": 46,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 1825,
      "end": 1834,
      "loc": {
        "start": {
          "line": 46,
          "column": 48
        },
        "end": {
          "line": 46,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1835,
      "end": 1836,
      "loc": {
        "start": {
          "line": 46,
          "column": 58
        },
        "end": {
          "line": 46,
          "column": 59
        }
      }
    },
    {
      "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": 1837,
      "end": 1841,
      "loc": {
        "start": {
          "line": 46,
          "column": 60
        },
        "end": {
          "line": 46,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1841,
      "end": 1842,
      "loc": {
        "start": {
          "line": 46,
          "column": 64
        },
        "end": {
          "line": 46,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sequelize",
      "start": 1842,
      "end": 1851,
      "loc": {
        "start": {
          "line": 46,
          "column": 65
        },
        "end": {
          "line": 46,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1851,
      "end": 1852,
      "loc": {
        "start": {
          "line": 46,
          "column": 74
        },
        "end": {
          "line": 46,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1852,
      "end": 1859,
      "loc": {
        "start": {
          "line": 46,
          "column": 75
        },
        "end": {
          "line": 46,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1859,
      "end": 1860,
      "loc": {
        "start": {
          "line": 46,
          "column": 82
        },
        "end": {
          "line": 46,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "timestamps",
      "start": 1860,
      "end": 1870,
      "loc": {
        "start": {
          "line": 46,
          "column": 83
        },
        "end": {
          "line": 46,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1871,
      "end": 1872,
      "loc": {
        "start": {
          "line": 46,
          "column": 94
        },
        "end": {
          "line": 46,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1873,
      "end": 1880,
      "loc": {
        "start": {
          "line": 46,
          "column": 96
        },
        "end": {
          "line": 46,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1880,
      "end": 1881,
      "loc": {
        "start": {
          "line": 46,
          "column": 103
        },
        "end": {
          "line": 46,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "timestamps",
      "start": 1881,
      "end": 1891,
      "loc": {
        "start": {
          "line": 46,
          "column": 104
        },
        "end": {
          "line": 46,
          "column": 114
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1891,
      "end": 1892,
      "loc": {
        "start": {
          "line": 46,
          "column": 114
        },
        "end": {
          "line": 46,
          "column": 115
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1897,
      "end": 1904,
      "loc": {
        "start": {
          "line": 47,
          "column": 4
        },
        "end": {
          "line": 47,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1905,
      "end": 1906,
      "loc": {
        "start": {
          "line": 47,
          "column": 12
        },
        "end": {
          "line": 47,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 1907,
      "end": 1908,
      "loc": {
        "start": {
          "line": 47,
          "column": 14
        },
        "end": {
          "line": 47,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1908,
      "end": 1909,
      "loc": {
        "start": {
          "line": 47,
          "column": 15
        },
        "end": {
          "line": 47,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "extend",
      "start": 1909,
      "end": 1915,
      "loc": {
        "start": {
          "line": 47,
          "column": 16
        },
        "end": {
          "line": 47,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1915,
      "end": 1916,
      "loc": {
        "start": {
          "line": 47,
          "column": 22
        },
        "end": {
          "line": 47,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1916,
      "end": 1923,
      "loc": {
        "start": {
          "line": 47,
          "column": 23
        },
        "end": {
          "line": 47,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1923,
      "end": 1924,
      "loc": {
        "start": {
          "line": 47,
          "column": 30
        },
        "end": {
          "line": 47,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 1925,
      "end": 1926,
      "loc": {
        "start": {
          "line": 47,
          "column": 32
        },
        "end": {
          "line": 47,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1926,
      "end": 1927,
      "loc": {
        "start": {
          "line": 47,
          "column": 33
        },
        "end": {
          "line": 47,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "omit",
      "start": 1927,
      "end": 1931,
      "loc": {
        "start": {
          "line": 47,
          "column": 34
        },
        "end": {
          "line": 47,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1931,
      "end": 1932,
      "loc": {
        "start": {
          "line": 47,
          "column": 38
        },
        "end": {
          "line": 47,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sourceModel",
      "start": 1932,
      "end": 1943,
      "loc": {
        "start": {
          "line": 47,
          "column": 39
        },
        "end": {
          "line": 47,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1943,
      "end": 1944,
      "loc": {
        "start": {
          "line": 47,
          "column": 50
        },
        "end": {
          "line": 47,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 1944,
      "end": 1951,
      "loc": {
        "start": {
          "line": 47,
          "column": 51
        },
        "end": {
          "line": 47,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1951,
      "end": 1952,
      "loc": {
        "start": {
          "line": 47,
          "column": 58
        },
        "end": {
          "line": 47,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1953,
      "end": 1954,
      "loc": {
        "start": {
          "line": 47,
          "column": 60
        },
        "end": {
          "line": 47,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "hooks",
      "start": 1954,
      "end": 1961,
      "loc": {
        "start": {
          "line": 47,
          "column": 61
        },
        "end": {
          "line": 47,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1961,
      "end": 1962,
      "loc": {
        "start": {
          "line": 47,
          "column": 68
        },
        "end": {
          "line": 47,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "timestamps",
      "start": 1963,
      "end": 1975,
      "loc": {
        "start": {
          "line": 47,
          "column": 70
        },
        "end": {
          "line": 47,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1975,
      "end": 1976,
      "loc": {
        "start": {
          "line": 47,
          "column": 82
        },
        "end": {
          "line": 47,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "scopes",
      "start": 1977,
      "end": 1985,
      "loc": {
        "start": {
          "line": 47,
          "column": 84
        },
        "end": {
          "line": 47,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1985,
      "end": 1986,
      "loc": {
        "start": {
          "line": 47,
          "column": 92
        },
        "end": {
          "line": 47,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "defaultScope",
      "start": 1987,
      "end": 2001,
      "loc": {
        "start": {
          "line": 47,
          "column": 94
        },
        "end": {
          "line": 47,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2001,
      "end": 2002,
      "loc": {
        "start": {
          "line": 47,
          "column": 108
        },
        "end": {
          "line": 47,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2002,
      "end": 2003,
      "loc": {
        "start": {
          "line": 47,
          "column": 109
        },
        "end": {
          "line": 47,
          "column": 110
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2003,
      "end": 2004,
      "loc": {
        "start": {
          "line": 47,
          "column": 110
        },
        "end": {
          "line": 47,
          "column": 111
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2004,
      "end": 2005,
      "loc": {
        "start": {
          "line": 47,
          "column": 111
        },
        "end": {
          "line": 47,
          "column": 112
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table or in a connecting table",
      "start": 2011,
      "end": 2069,
      "loc": {
        "start": {
          "line": 49,
          "column": 4
        },
        "end": {
          "line": 49,
          "column": 62
        }
      }
    },
    {
      "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": 2074,
      "end": 2079,
      "loc": {
        "start": {
          "line": 50,
          "column": 4
        },
        "end": {
          "line": 50,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2080,
      "end": 2091,
      "loc": {
        "start": {
          "line": 50,
          "column": 10
        },
        "end": {
          "line": 50,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2092,
      "end": 2093,
      "loc": {
        "start": {
          "line": 50,
          "column": 22
        },
        "end": {
          "line": 50,
          "column": 23
        }
      }
    },
    {
      "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": 2094,
      "end": 2097,
      "loc": {
        "start": {
          "line": 50,
          "column": 24
        },
        "end": {
          "line": 50,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "BelongsToMany",
      "start": 2098,
      "end": 2111,
      "loc": {
        "start": {
          "line": 50,
          "column": 28
        },
        "end": {
          "line": 50,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2111,
      "end": 2112,
      "loc": {
        "start": {
          "line": 50,
          "column": 41
        },
        "end": {
          "line": 50,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sourceModel",
      "start": 2112,
      "end": 2123,
      "loc": {
        "start": {
          "line": 50,
          "column": 42
        },
        "end": {
          "line": 50,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2123,
      "end": 2124,
      "loc": {
        "start": {
          "line": 50,
          "column": 53
        },
        "end": {
          "line": 50,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "targetModel",
      "start": 2125,
      "end": 2136,
      "loc": {
        "start": {
          "line": 50,
          "column": 55
        },
        "end": {
          "line": 50,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2136,
      "end": 2137,
      "loc": {
        "start": {
          "line": 50,
          "column": 66
        },
        "end": {
          "line": 50,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 2138,
      "end": 2145,
      "loc": {
        "start": {
          "line": 50,
          "column": 68
        },
        "end": {
          "line": 50,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2145,
      "end": 2146,
      "loc": {
        "start": {
          "line": 50,
          "column": 75
        },
        "end": {
          "line": 50,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2146,
      "end": 2147,
      "loc": {
        "start": {
          "line": 50,
          "column": 76
        },
        "end": {
          "line": 50,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sourceModel",
      "start": 2152,
      "end": 2163,
      "loc": {
        "start": {
          "line": 51,
          "column": 4
        },
        "end": {
          "line": 51,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2163,
      "end": 2164,
      "loc": {
        "start": {
          "line": 51,
          "column": 15
        },
        "end": {
          "line": 51,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associations",
      "start": 2164,
      "end": 2176,
      "loc": {
        "start": {
          "line": 51,
          "column": 16
        },
        "end": {
          "line": 51,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2176,
      "end": 2177,
      "loc": {
        "start": {
          "line": 51,
          "column": 28
        },
        "end": {
          "line": 51,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2177,
      "end": 2188,
      "loc": {
        "start": {
          "line": 51,
          "column": 29
        },
        "end": {
          "line": 51,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2188,
      "end": 2189,
      "loc": {
        "start": {
          "line": 51,
          "column": 40
        },
        "end": {
          "line": 51,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associationAccessor",
      "start": 2189,
      "end": 2208,
      "loc": {
        "start": {
          "line": 51,
          "column": 41
        },
        "end": {
          "line": 51,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2208,
      "end": 2209,
      "loc": {
        "start": {
          "line": 51,
          "column": 60
        },
        "end": {
          "line": 51,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2210,
      "end": 2211,
      "loc": {
        "start": {
          "line": 51,
          "column": 62
        },
        "end": {
          "line": 51,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2212,
      "end": 2223,
      "loc": {
        "start": {
          "line": 51,
          "column": 64
        },
        "end": {
          "line": 51,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2223,
      "end": 2224,
      "loc": {
        "start": {
          "line": 51,
          "column": 75
        },
        "end": {
          "line": 51,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2230,
      "end": 2241,
      "loc": {
        "start": {
          "line": 53,
          "column": 4
        },
        "end": {
          "line": 53,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2241,
      "end": 2242,
      "loc": {
        "start": {
          "line": 53,
          "column": 15
        },
        "end": {
          "line": 53,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "injectAttributes",
      "start": 2242,
      "end": 2258,
      "loc": {
        "start": {
          "line": 53,
          "column": 16
        },
        "end": {
          "line": 53,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2258,
      "end": 2259,
      "loc": {
        "start": {
          "line": 53,
          "column": 32
        },
        "end": {
          "line": 53,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2259,
      "end": 2260,
      "loc": {
        "start": {
          "line": 53,
          "column": 33
        },
        "end": {
          "line": 53,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2260,
      "end": 2261,
      "loc": {
        "start": {
          "line": 53,
          "column": 34
        },
        "end": {
          "line": 53,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2266,
      "end": 2277,
      "loc": {
        "start": {
          "line": 54,
          "column": 4
        },
        "end": {
          "line": 54,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2277,
      "end": 2278,
      "loc": {
        "start": {
          "line": 54,
          "column": 15
        },
        "end": {
          "line": 54,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mixin",
      "start": 2278,
      "end": 2283,
      "loc": {
        "start": {
          "line": 54,
          "column": 16
        },
        "end": {
          "line": 54,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2283,
      "end": 2284,
      "loc": {
        "start": {
          "line": 54,
          "column": 21
        },
        "end": {
          "line": 54,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sourceModel",
      "start": 2284,
      "end": 2295,
      "loc": {
        "start": {
          "line": 54,
          "column": 22
        },
        "end": {
          "line": 54,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2295,
      "end": 2296,
      "loc": {
        "start": {
          "line": 54,
          "column": 33
        },
        "end": {
          "line": 54,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 2296,
      "end": 2305,
      "loc": {
        "start": {
          "line": 54,
          "column": 34
        },
        "end": {
          "line": 54,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2305,
      "end": 2306,
      "loc": {
        "start": {
          "line": 54,
          "column": 43
        },
        "end": {
          "line": 54,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2306,
      "end": 2307,
      "loc": {
        "start": {
          "line": 54,
          "column": 44
        },
        "end": {
          "line": 54,
          "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": 2313,
      "end": 2319,
      "loc": {
        "start": {
          "line": 56,
          "column": 4
        },
        "end": {
          "line": 56,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2320,
      "end": 2331,
      "loc": {
        "start": {
          "line": 56,
          "column": 11
        },
        "end": {
          "line": 56,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2331,
      "end": 2332,
      "loc": {
        "start": {
          "line": 56,
          "column": 22
        },
        "end": {
          "line": 56,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2335,
      "end": 2336,
      "loc": {
        "start": {
          "line": 57,
          "column": 2
        },
        "end": {
          "line": 57,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2336,
      "end": 2337,
      "loc": {
        "start": {
          "line": 57,
          "column": 3
        },
        "end": {
          "line": 57,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getAssociations",
      "start": 2341,
      "end": 2356,
      "loc": {
        "start": {
          "line": 59,
          "column": 2
        },
        "end": {
          "line": 59,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2356,
      "end": 2357,
      "loc": {
        "start": {
          "line": 59,
          "column": 17
        },
        "end": {
          "line": 59,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 2357,
      "end": 2363,
      "loc": {
        "start": {
          "line": 59,
          "column": 18
        },
        "end": {
          "line": 59,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2363,
      "end": 2364,
      "loc": {
        "start": {
          "line": 59,
          "column": 24
        },
        "end": {
          "line": 59,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2365,
      "end": 2366,
      "loc": {
        "start": {
          "line": 59,
          "column": 26
        },
        "end": {
          "line": 59,
          "column": 27
        }
      }
    },
    {
      "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": 2371,
      "end": 2377,
      "loc": {
        "start": {
          "line": 60,
          "column": 4
        },
        "end": {
          "line": 60,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 2378,
      "end": 2379,
      "loc": {
        "start": {
          "line": 60,
          "column": 11
        },
        "end": {
          "line": 60,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2379,
      "end": 2380,
      "loc": {
        "start": {
          "line": 60,
          "column": 12
        },
        "end": {
          "line": 60,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "values",
      "start": 2380,
      "end": 2386,
      "loc": {
        "start": {
          "line": 60,
          "column": 13
        },
        "end": {
          "line": 60,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2386,
      "end": 2387,
      "loc": {
        "start": {
          "line": 60,
          "column": 19
        },
        "end": {
          "line": 60,
          "column": 20
        }
      }
    },
    {
      "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": 2387,
      "end": 2391,
      "loc": {
        "start": {
          "line": 60,
          "column": 20
        },
        "end": {
          "line": 60,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2391,
      "end": 2392,
      "loc": {
        "start": {
          "line": 60,
          "column": 24
        },
        "end": {
          "line": 60,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associations",
      "start": 2392,
      "end": 2404,
      "loc": {
        "start": {
          "line": 60,
          "column": 25
        },
        "end": {
          "line": 60,
          "column": 37
        }
      }
    },
    {
      "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": 60,
          "column": 37
        },
        "end": {
          "line": 60,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2405,
      "end": 2406,
      "loc": {
        "start": {
          "line": 60,
          "column": 38
        },
        "end": {
          "line": 60,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "filter",
      "start": 2406,
      "end": 2412,
      "loc": {
        "start": {
          "line": 60,
          "column": 39
        },
        "end": {
          "line": 60,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2412,
      "end": 2413,
      "loc": {
        "start": {
          "line": 60,
          "column": 45
        },
        "end": {
          "line": 60,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2413,
      "end": 2424,
      "loc": {
        "start": {
          "line": 60,
          "column": 46
        },
        "end": {
          "line": 60,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2425,
      "end": 2427,
      "loc": {
        "start": {
          "line": 60,
          "column": 58
        },
        "end": {
          "line": 60,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2428,
      "end": 2439,
      "loc": {
        "start": {
          "line": 60,
          "column": 61
        },
        "end": {
          "line": 60,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2439,
      "end": 2440,
      "loc": {
        "start": {
          "line": 60,
          "column": 72
        },
        "end": {
          "line": 60,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 2440,
      "end": 2446,
      "loc": {
        "start": {
          "line": 60,
          "column": 73
        },
        "end": {
          "line": 60,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2446,
      "end": 2447,
      "loc": {
        "start": {
          "line": 60,
          "column": 79
        },
        "end": {
          "line": 60,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 2447,
      "end": 2451,
      "loc": {
        "start": {
          "line": 60,
          "column": 80
        },
        "end": {
          "line": 60,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2452,
      "end": 2455,
      "loc": {
        "start": {
          "line": 60,
          "column": 85
        },
        "end": {
          "line": 60,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 2456,
      "end": 2462,
      "loc": {
        "start": {
          "line": 60,
          "column": 89
        },
        "end": {
          "line": 60,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2462,
      "end": 2463,
      "loc": {
        "start": {
          "line": 60,
          "column": 95
        },
        "end": {
          "line": 60,
          "column": 96
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 2463,
      "end": 2467,
      "loc": {
        "start": {
          "line": 60,
          "column": 96
        },
        "end": {
          "line": 60,
          "column": 100
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2467,
      "end": 2468,
      "loc": {
        "start": {
          "line": 60,
          "column": 100
        },
        "end": {
          "line": 60,
          "column": 101
        }
      }
    },
    {
      "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": 60,
          "column": 101
        },
        "end": {
          "line": 60,
          "column": 102
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2472,
      "end": 2473,
      "loc": {
        "start": {
          "line": 61,
          "column": 2
        },
        "end": {
          "line": 61,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2473,
      "end": 2474,
      "loc": {
        "start": {
          "line": 61,
          "column": 3
        },
        "end": {
          "line": 61,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getAssociationForAlias",
      "start": 2478,
      "end": 2500,
      "loc": {
        "start": {
          "line": 63,
          "column": 2
        },
        "end": {
          "line": 63,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2500,
      "end": 2501,
      "loc": {
        "start": {
          "line": 63,
          "column": 24
        },
        "end": {
          "line": 63,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 2501,
      "end": 2507,
      "loc": {
        "start": {
          "line": 63,
          "column": 25
        },
        "end": {
          "line": 63,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2507,
      "end": 2508,
      "loc": {
        "start": {
          "line": 63,
          "column": 31
        },
        "end": {
          "line": 63,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "alias",
      "start": 2509,
      "end": 2514,
      "loc": {
        "start": {
          "line": 63,
          "column": 33
        },
        "end": {
          "line": 63,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2514,
      "end": 2515,
      "loc": {
        "start": {
          "line": 63,
          "column": 38
        },
        "end": {
          "line": 63,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2516,
      "end": 2517,
      "loc": {
        "start": {
          "line": 63,
          "column": 40
        },
        "end": {
          "line": 63,
          "column": 41
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Two associations cannot have the same alias, so we can use find instead of filter",
      "start": 2522,
      "end": 2606,
      "loc": {
        "start": {
          "line": 64,
          "column": 4
        },
        "end": {
          "line": 64,
          "column": 88
        }
      }
    },
    {
      "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": 2611,
      "end": 2617,
      "loc": {
        "start": {
          "line": 65,
          "column": 4
        },
        "end": {
          "line": 65,
          "column": 10
        }
      }
    },
    {
      "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": 2618,
      "end": 2622,
      "loc": {
        "start": {
          "line": 65,
          "column": 11
        },
        "end": {
          "line": 65,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2622,
      "end": 2623,
      "loc": {
        "start": {
          "line": 65,
          "column": 15
        },
        "end": {
          "line": 65,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getAssociations",
      "start": 2623,
      "end": 2638,
      "loc": {
        "start": {
          "line": 65,
          "column": 16
        },
        "end": {
          "line": 65,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2638,
      "end": 2639,
      "loc": {
        "start": {
          "line": 65,
          "column": 31
        },
        "end": {
          "line": 65,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 2639,
      "end": 2645,
      "loc": {
        "start": {
          "line": 65,
          "column": 32
        },
        "end": {
          "line": 65,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2645,
      "end": 2646,
      "loc": {
        "start": {
          "line": 65,
          "column": 38
        },
        "end": {
          "line": 65,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2646,
      "end": 2647,
      "loc": {
        "start": {
          "line": 65,
          "column": 39
        },
        "end": {
          "line": 65,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "find",
      "start": 2647,
      "end": 2651,
      "loc": {
        "start": {
          "line": 65,
          "column": 40
        },
        "end": {
          "line": 65,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2651,
      "end": 2652,
      "loc": {
        "start": {
          "line": 65,
          "column": 44
        },
        "end": {
          "line": 65,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2652,
      "end": 2663,
      "loc": {
        "start": {
          "line": 65,
          "column": 45
        },
        "end": {
          "line": 65,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2664,
      "end": 2666,
      "loc": {
        "start": {
          "line": 65,
          "column": 57
        },
        "end": {
          "line": 65,
          "column": 59
        }
      }
    },
    {
      "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": 2667,
      "end": 2671,
      "loc": {
        "start": {
          "line": 65,
          "column": 60
        },
        "end": {
          "line": 65,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2671,
      "end": 2672,
      "loc": {
        "start": {
          "line": 65,
          "column": 64
        },
        "end": {
          "line": 65,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "verifyAssociationAlias",
      "start": 2672,
      "end": 2694,
      "loc": {
        "start": {
          "line": 65,
          "column": 65
        },
        "end": {
          "line": 65,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2694,
      "end": 2695,
      "loc": {
        "start": {
          "line": 65,
          "column": 87
        },
        "end": {
          "line": 65,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2695,
      "end": 2706,
      "loc": {
        "start": {
          "line": 65,
          "column": 88
        },
        "end": {
          "line": 65,
          "column": 99
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2706,
      "end": 2707,
      "loc": {
        "start": {
          "line": 65,
          "column": 99
        },
        "end": {
          "line": 65,
          "column": 100
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "alias",
      "start": 2708,
      "end": 2713,
      "loc": {
        "start": {
          "line": 65,
          "column": 101
        },
        "end": {
          "line": 65,
          "column": 106
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2713,
      "end": 2714,
      "loc": {
        "start": {
          "line": 65,
          "column": 106
        },
        "end": {
          "line": 65,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2714,
      "end": 2715,
      "loc": {
        "start": {
          "line": 65,
          "column": 107
        },
        "end": {
          "line": 65,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 2716,
      "end": 2718,
      "loc": {
        "start": {
          "line": 65,
          "column": 109
        },
        "end": {
          "line": 65,
          "column": 111
        }
      }
    },
    {
      "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": 2719,
      "end": 2723,
      "loc": {
        "start": {
          "line": 65,
          "column": 112
        },
        "end": {
          "line": 65,
          "column": 116
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2723,
      "end": 2724,
      "loc": {
        "start": {
          "line": 65,
          "column": 116
        },
        "end": {
          "line": 65,
          "column": 117
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2727,
      "end": 2728,
      "loc": {
        "start": {
          "line": 66,
          "column": 2
        },
        "end": {
          "line": 66,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2728,
      "end": 2729,
      "loc": {
        "start": {
          "line": 66,
          "column": 3
        },
        "end": {
          "line": 66,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "verifyAssociationAlias",
      "start": 2733,
      "end": 2755,
      "loc": {
        "start": {
          "line": 68,
          "column": 2
        },
        "end": {
          "line": 68,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2755,
      "end": 2756,
      "loc": {
        "start": {
          "line": 68,
          "column": 24
        },
        "end": {
          "line": 68,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2756,
      "end": 2767,
      "loc": {
        "start": {
          "line": 68,
          "column": 25
        },
        "end": {
          "line": 68,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2767,
      "end": 2768,
      "loc": {
        "start": {
          "line": 68,
          "column": 36
        },
        "end": {
          "line": 68,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "alias",
      "start": 2769,
      "end": 2774,
      "loc": {
        "start": {
          "line": 68,
          "column": 38
        },
        "end": {
          "line": 68,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2774,
      "end": 2775,
      "loc": {
        "start": {
          "line": 68,
          "column": 43
        },
        "end": {
          "line": 68,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2776,
      "end": 2777,
      "loc": {
        "start": {
          "line": 68,
          "column": 45
        },
        "end": {
          "line": 68,
          "column": 46
        }
      }
    },
    {
      "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": 2782,
      "end": 2784,
      "loc": {
        "start": {
          "line": 69,
          "column": 4
        },
        "end": {
          "line": 69,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2785,
      "end": 2786,
      "loc": {
        "start": {
          "line": 69,
          "column": 7
        },
        "end": {
          "line": 69,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "alias",
      "start": 2786,
      "end": 2791,
      "loc": {
        "start": {
          "line": 69,
          "column": 8
        },
        "end": {
          "line": 69,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2791,
      "end": 2792,
      "loc": {
        "start": {
          "line": 69,
          "column": 13
        },
        "end": {
          "line": 69,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2793,
      "end": 2794,
      "loc": {
        "start": {
          "line": 69,
          "column": 15
        },
        "end": {
          "line": 69,
          "column": 16
        }
      }
    },
    {
      "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": 2801,
      "end": 2807,
      "loc": {
        "start": {
          "line": 70,
          "column": 6
        },
        "end": {
          "line": 70,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2808,
      "end": 2819,
      "loc": {
        "start": {
          "line": 70,
          "column": 13
        },
        "end": {
          "line": 70,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2819,
      "end": 2820,
      "loc": {
        "start": {
          "line": 70,
          "column": 24
        },
        "end": {
          "line": 70,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 2820,
      "end": 2822,
      "loc": {
        "start": {
          "line": 70,
          "column": 25
        },
        "end": {
          "line": 70,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2823,
      "end": 2826,
      "loc": {
        "start": {
          "line": 70,
          "column": 28
        },
        "end": {
          "line": 70,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "alias",
      "start": 2827,
      "end": 2832,
      "loc": {
        "start": {
          "line": 70,
          "column": 32
        },
        "end": {
          "line": 70,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2832,
      "end": 2833,
      "loc": {
        "start": {
          "line": 70,
          "column": 37
        },
        "end": {
          "line": 70,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2838,
      "end": 2839,
      "loc": {
        "start": {
          "line": 71,
          "column": 4
        },
        "end": {
          "line": 71,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 2840,
      "end": 2844,
      "loc": {
        "start": {
          "line": 71,
          "column": 6
        },
        "end": {
          "line": 71,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2845,
      "end": 2846,
      "loc": {
        "start": {
          "line": 71,
          "column": 11
        },
        "end": {
          "line": 71,
          "column": 12
        }
      }
    },
    {
      "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": 2853,
      "end": 2859,
      "loc": {
        "start": {
          "line": 72,
          "column": 6
        },
        "end": {
          "line": 72,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 2860,
      "end": 2861,
      "loc": {
        "start": {
          "line": 72,
          "column": 13
        },
        "end": {
          "line": 72,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 2861,
      "end": 2872,
      "loc": {
        "start": {
          "line": 72,
          "column": 14
        },
        "end": {
          "line": 72,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2872,
      "end": 2873,
      "loc": {
        "start": {
          "line": 72,
          "column": 25
        },
        "end": {
          "line": 72,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isAliased",
      "start": 2873,
      "end": 2882,
      "loc": {
        "start": {
          "line": 72,
          "column": 26
        },
        "end": {
          "line": 72,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2882,
      "end": 2883,
      "loc": {
        "start": {
          "line": 72,
          "column": 35
        },
        "end": {
          "line": 72,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2888,
      "end": 2889,
      "loc": {
        "start": {
          "line": 73,
          "column": 4
        },
        "end": {
          "line": 73,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2892,
      "end": 2893,
      "loc": {
        "start": {
          "line": 74,
          "column": 2
        },
        "end": {
          "line": 74,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2894,
      "end": 2895,
      "loc": {
        "start": {
          "line": 75,
          "column": 0
        },
        "end": {
          "line": 75,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2895,
      "end": 2896,
      "loc": {
        "start": {
          "line": 75,
          "column": 1
        },
        "end": {
          "line": 75,
          "column": 2
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " The logic for hasOne and belongsTo is exactly the same",
      "start": 2898,
      "end": 2955,
      "loc": {
        "start": {
          "line": 77,
          "column": 0
        },
        "end": {
          "line": 77,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 2956,
      "end": 2964,
      "loc": {
        "start": {
          "line": 78,
          "column": 0
        },
        "end": {
          "line": 78,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "singleLinked",
      "start": 2965,
      "end": 2977,
      "loc": {
        "start": {
          "line": 78,
          "column": 9
        },
        "end": {
          "line": 78,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2977,
      "end": 2978,
      "loc": {
        "start": {
          "line": 78,
          "column": 21
        },
        "end": {
          "line": 78,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Type",
      "start": 2978,
      "end": 2982,
      "loc": {
        "start": {
          "line": 78,
          "column": 22
        },
        "end": {
          "line": 78,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2982,
      "end": 2983,
      "loc": {
        "start": {
          "line": 78,
          "column": 26
        },
        "end": {
          "line": 78,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2984,
      "end": 2985,
      "loc": {
        "start": {
          "line": 78,
          "column": 28
        },
        "end": {
          "line": 78,
          "column": 29
        }
      }
    },
    {
      "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": 2988,
      "end": 2994,
      "loc": {
        "start": {
          "line": 79,
          "column": 2
        },
        "end": {
          "line": 79,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "function",
        "keyword": "function",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "function",
      "start": 2995,
      "end": 3003,
      "loc": {
        "start": {
          "line": 79,
          "column": 9
        },
        "end": {
          "line": 79,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3003,
      "end": 3004,
      "loc": {
        "start": {
          "line": 79,
          "column": 17
        },
        "end": {
          "line": 79,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 3004,
      "end": 3010,
      "loc": {
        "start": {
          "line": 79,
          "column": 18
        },
        "end": {
          "line": 79,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3010,
      "end": 3011,
      "loc": {
        "start": {
          "line": 79,
          "column": 24
        },
        "end": {
          "line": 79,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3012,
      "end": 3019,
      "loc": {
        "start": {
          "line": 79,
          "column": 26
        },
        "end": {
          "line": 79,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3019,
      "end": 3020,
      "loc": {
        "start": {
          "line": 79,
          "column": 33
        },
        "end": {
          "line": 79,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3021,
      "end": 3022,
      "loc": {
        "start": {
          "line": 79,
          "column": 35
        },
        "end": {
          "line": 79,
          "column": 36
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " testhint options:none",
      "start": 3023,
      "end": 3047,
      "loc": {
        "start": {
          "line": 79,
          "column": 37
        },
        "end": {
          "line": 79,
          "column": 61
        }
      }
    },
    {
      "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": 3052,
      "end": 3054,
      "loc": {
        "start": {
          "line": 80,
          "column": 4
        },
        "end": {
          "line": 80,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3055,
      "end": 3056,
      "loc": {
        "start": {
          "line": 80,
          "column": 7
        },
        "end": {
          "line": 80,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 3056,
      "end": 3057,
      "loc": {
        "start": {
          "line": 80,
          "column": 8
        },
        "end": {
          "line": 80,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 3057,
      "end": 3063,
      "loc": {
        "start": {
          "line": 80,
          "column": 9
        },
        "end": {
          "line": 80,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3063,
      "end": 3064,
      "loc": {
        "start": {
          "line": 80,
          "column": 15
        },
        "end": {
          "line": 80,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 3064,
      "end": 3073,
      "loc": {
        "start": {
          "line": 80,
          "column": 16
        },
        "end": {
          "line": 80,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3074,
      "end": 3076,
      "loc": {
        "start": {
          "line": 80,
          "column": 26
        },
        "end": {
          "line": 80,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 3077,
      "end": 3078,
      "loc": {
        "start": {
          "line": 80,
          "column": 29
        },
        "end": {
          "line": 80,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3078,
      "end": 3079,
      "loc": {
        "start": {
          "line": 80,
          "column": 30
        },
        "end": {
          "line": 80,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 3079,
      "end": 3085,
      "loc": {
        "start": {
          "line": 80,
          "column": 31
        },
        "end": {
          "line": 80,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3085,
      "end": 3086,
      "loc": {
        "start": {
          "line": 80,
          "column": 37
        },
        "end": {
          "line": 80,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 3086,
      "end": 3095,
      "loc": {
        "start": {
          "line": 80,
          "column": 38
        },
        "end": {
          "line": 80,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 3096,
      "end": 3106,
      "loc": {
        "start": {
          "line": 80,
          "column": 48
        },
        "end": {
          "line": 80,
          "column": 58
        }
      }
    },
    {
      "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": 3107,
      "end": 3111,
      "loc": {
        "start": {
          "line": 80,
          "column": 59
        },
        "end": {
          "line": 80,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3111,
      "end": 3112,
      "loc": {
        "start": {
          "line": 80,
          "column": 63
        },
        "end": {
          "line": 80,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sequelize",
      "start": 3112,
      "end": 3121,
      "loc": {
        "start": {
          "line": 80,
          "column": 64
        },
        "end": {
          "line": 80,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3121,
      "end": 3122,
      "loc": {
        "start": {
          "line": 80,
          "column": 73
        },
        "end": {
          "line": 80,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Model",
      "start": 3122,
      "end": 3127,
      "loc": {
        "start": {
          "line": 80,
          "column": 74
        },
        "end": {
          "line": 80,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3127,
      "end": 3128,
      "loc": {
        "start": {
          "line": 80,
          "column": 79
        },
        "end": {
          "line": 80,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3128,
      "end": 3129,
      "loc": {
        "start": {
          "line": 80,
          "column": 80
        },
        "end": {
          "line": 80,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3130,
      "end": 3131,
      "loc": {
        "start": {
          "line": 80,
          "column": 82
        },
        "end": {
          "line": 80,
          "column": 83
        }
      }
    },
    {
      "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": 3138,
      "end": 3143,
      "loc": {
        "start": {
          "line": 81,
          "column": 6
        },
        "end": {
          "line": 81,
          "column": 11
        }
      }
    },
    {
      "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": 3144,
      "end": 3147,
      "loc": {
        "start": {
          "line": 81,
          "column": 12
        },
        "end": {
          "line": 81,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Error",
      "start": 3148,
      "end": 3153,
      "loc": {
        "start": {
          "line": 81,
          "column": 16
        },
        "end": {
          "line": 81,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3153,
      "end": 3154,
      "loc": {
        "start": {
          "line": 81,
          "column": 21
        },
        "end": {
          "line": 81,
          "column": 22
        }
      }
    },
    {
      "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": 3154,
      "end": 3158,
      "loc": {
        "start": {
          "line": 81,
          "column": 22
        },
        "end": {
          "line": 81,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3158,
      "end": 3159,
      "loc": {
        "start": {
          "line": 81,
          "column": 26
        },
        "end": {
          "line": 81,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 3159,
      "end": 3163,
      "loc": {
        "start": {
          "line": 81,
          "column": 27
        },
        "end": {
          "line": 81,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 3164,
      "end": 3165,
      "loc": {
        "start": {
          "line": 81,
          "column": 32
        },
        "end": {
          "line": 81,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": ".",
      "start": 3166,
      "end": 3169,
      "loc": {
        "start": {
          "line": 81,
          "column": 34
        },
        "end": {
          "line": 81,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 3170,
      "end": 3171,
      "loc": {
        "start": {
          "line": 81,
          "column": 38
        },
        "end": {
          "line": 81,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Utils",
      "start": 3172,
      "end": 3177,
      "loc": {
        "start": {
          "line": 81,
          "column": 40
        },
        "end": {
          "line": 81,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3177,
      "end": 3178,
      "loc": {
        "start": {
          "line": 81,
          "column": 45
        },
        "end": {
          "line": 81,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lowercaseFirst",
      "start": 3178,
      "end": 3192,
      "loc": {
        "start": {
          "line": 81,
          "column": 46
        },
        "end": {
          "line": 81,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3192,
      "end": 3193,
      "loc": {
        "start": {
          "line": 81,
          "column": 60
        },
        "end": {
          "line": 81,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Type",
      "start": 3193,
      "end": 3197,
      "loc": {
        "start": {
          "line": 81,
          "column": 61
        },
        "end": {
          "line": 81,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3197,
      "end": 3198,
      "loc": {
        "start": {
          "line": 81,
          "column": 65
        },
        "end": {
          "line": 81,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "toString",
      "start": 3198,
      "end": 3206,
      "loc": {
        "start": {
          "line": 81,
          "column": 66
        },
        "end": {
          "line": 81,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3206,
      "end": 3207,
      "loc": {
        "start": {
          "line": 81,
          "column": 74
        },
        "end": {
          "line": 81,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3207,
      "end": 3208,
      "loc": {
        "start": {
          "line": 81,
          "column": 75
        },
        "end": {
          "line": 81,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3208,
      "end": 3209,
      "loc": {
        "start": {
          "line": 81,
          "column": 76
        },
        "end": {
          "line": 81,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 3210,
      "end": 3211,
      "loc": {
        "start": {
          "line": 81,
          "column": 78
        },
        "end": {
          "line": 81,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": " called with something that's not a subclass of Sequelize.Model",
      "start": 3212,
      "end": 3278,
      "loc": {
        "start": {
          "line": 81,
          "column": 80
        },
        "end": {
          "line": 81,
          "column": 146
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3278,
      "end": 3279,
      "loc": {
        "start": {
          "line": 81,
          "column": 146
        },
        "end": {
          "line": 81,
          "column": 147
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3279,
      "end": 3280,
      "loc": {
        "start": {
          "line": 81,
          "column": 147
        },
        "end": {
          "line": 81,
          "column": 148
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3285,
      "end": 3286,
      "loc": {
        "start": {
          "line": 82,
          "column": 4
        },
        "end": {
          "line": 82,
          "column": 5
        }
      }
    },
    {
      "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": 3292,
      "end": 3297,
      "loc": {
        "start": {
          "line": 84,
          "column": 4
        },
        "end": {
          "line": 84,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 3298,
      "end": 3304,
      "loc": {
        "start": {
          "line": 84,
          "column": 10
        },
        "end": {
          "line": 84,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3305,
      "end": 3306,
      "loc": {
        "start": {
          "line": 84,
          "column": 17
        },
        "end": {
          "line": 84,
          "column": 18
        }
      }
    },
    {
      "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": 3307,
      "end": 3311,
      "loc": {
        "start": {
          "line": 84,
          "column": 19
        },
        "end": {
          "line": 84,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3311,
      "end": 3312,
      "loc": {
        "start": {
          "line": 84,
          "column": 23
        },
        "end": {
          "line": 84,
          "column": 24
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Since this is a mixin, we'll need a unique letiable name for hooks (since Model will override our hooks option)",
      "start": 3318,
      "end": 3432,
      "loc": {
        "start": {
          "line": 86,
          "column": 4
        },
        "end": {
          "line": 86,
          "column": 118
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3437,
      "end": 3444,
      "loc": {
        "start": {
          "line": 87,
          "column": 4
        },
        "end": {
          "line": 87,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3445,
      "end": 3446,
      "loc": {
        "start": {
          "line": 87,
          "column": 12
        },
        "end": {
          "line": 87,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3447,
      "end": 3454,
      "loc": {
        "start": {
          "line": 87,
          "column": 14
        },
        "end": {
          "line": 87,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 3455,
      "end": 3457,
      "loc": {
        "start": {
          "line": 87,
          "column": 22
        },
        "end": {
          "line": 87,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3458,
      "end": 3459,
      "loc": {
        "start": {
          "line": 87,
          "column": 25
        },
        "end": {
          "line": 87,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3459,
      "end": 3460,
      "loc": {
        "start": {
          "line": 87,
          "column": 26
        },
        "end": {
          "line": 87,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3460,
      "end": 3461,
      "loc": {
        "start": {
          "line": 87,
          "column": 27
        },
        "end": {
          "line": 87,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3466,
      "end": 3473,
      "loc": {
        "start": {
          "line": 88,
          "column": 4
        },
        "end": {
          "line": 88,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3473,
      "end": 3474,
      "loc": {
        "start": {
          "line": 88,
          "column": 11
        },
        "end": {
          "line": 88,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 3474,
      "end": 3479,
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3480,
      "end": 3481,
      "loc": {
        "start": {
          "line": 88,
          "column": 18
        },
        "end": {
          "line": 88,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3482,
      "end": 3489,
      "loc": {
        "start": {
          "line": 88,
          "column": 20
        },
        "end": {
          "line": 88,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3489,
      "end": 3490,
      "loc": {
        "start": {
          "line": 88,
          "column": 27
        },
        "end": {
          "line": 88,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 3490,
      "end": 3495,
      "loc": {
        "start": {
          "line": 88,
          "column": 28
        },
        "end": {
          "line": 88,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 3496,
      "end": 3499,
      "loc": {
        "start": {
          "line": 88,
          "column": 34
        },
        "end": {
          "line": 88,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 3500,
      "end": 3509,
      "loc": {
        "start": {
          "line": 88,
          "column": 38
        },
        "end": {
          "line": 88,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3510,
      "end": 3511,
      "loc": {
        "start": {
          "line": 88,
          "column": 48
        },
        "end": {
          "line": 88,
          "column": 49
        }
      }
    },
    {
      "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": 3512,
      "end": 3517,
      "loc": {
        "start": {
          "line": 88,
          "column": 50
        },
        "end": {
          "line": 88,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3518,
      "end": 3519,
      "loc": {
        "start": {
          "line": 88,
          "column": 56
        },
        "end": {
          "line": 88,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Boolean",
      "start": 3520,
      "end": 3527,
      "loc": {
        "start": {
          "line": 88,
          "column": 58
        },
        "end": {
          "line": 88,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3527,
      "end": 3528,
      "loc": {
        "start": {
          "line": 88,
          "column": 65
        },
        "end": {
          "line": 88,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3528,
      "end": 3535,
      "loc": {
        "start": {
          "line": 88,
          "column": 66
        },
        "end": {
          "line": 88,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3535,
      "end": 3536,
      "loc": {
        "start": {
          "line": 88,
          "column": 73
        },
        "end": {
          "line": 88,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 3536,
      "end": 3541,
      "loc": {
        "start": {
          "line": 88,
          "column": 74
        },
        "end": {
          "line": 88,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3541,
      "end": 3542,
      "loc": {
        "start": {
          "line": 88,
          "column": 79
        },
        "end": {
          "line": 88,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3542,
      "end": 3543,
      "loc": {
        "start": {
          "line": 88,
          "column": 80
        },
        "end": {
          "line": 88,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3548,
      "end": 3555,
      "loc": {
        "start": {
          "line": 89,
          "column": 4
        },
        "end": {
          "line": 89,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3555,
      "end": 3556,
      "loc": {
        "start": {
          "line": 89,
          "column": 11
        },
        "end": {
          "line": 89,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "useHooks",
      "start": 3556,
      "end": 3564,
      "loc": {
        "start": {
          "line": 89,
          "column": 12
        },
        "end": {
          "line": 89,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3565,
      "end": 3566,
      "loc": {
        "start": {
          "line": 89,
          "column": 21
        },
        "end": {
          "line": 89,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3567,
      "end": 3574,
      "loc": {
        "start": {
          "line": 89,
          "column": 23
        },
        "end": {
          "line": 89,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3574,
      "end": 3575,
      "loc": {
        "start": {
          "line": 89,
          "column": 30
        },
        "end": {
          "line": 89,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hooks",
      "start": 3575,
      "end": 3580,
      "loc": {
        "start": {
          "line": 89,
          "column": 31
        },
        "end": {
          "line": 89,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3580,
      "end": 3581,
      "loc": {
        "start": {
          "line": 89,
          "column": 36
        },
        "end": {
          "line": 89,
          "column": 37
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " the id is in the foreign table",
      "start": 3587,
      "end": 3620,
      "loc": {
        "start": {
          "line": 91,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 37
        }
      }
    },
    {
      "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": 3625,
      "end": 3630,
      "loc": {
        "start": {
          "line": 92,
          "column": 4
        },
        "end": {
          "line": 92,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 3631,
      "end": 3642,
      "loc": {
        "start": {
          "line": 92,
          "column": 10
        },
        "end": {
          "line": 92,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3643,
      "end": 3644,
      "loc": {
        "start": {
          "line": 92,
          "column": 22
        },
        "end": {
          "line": 92,
          "column": 23
        }
      }
    },
    {
      "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": 3645,
      "end": 3648,
      "loc": {
        "start": {
          "line": 92,
          "column": 24
        },
        "end": {
          "line": 92,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Type",
      "start": 3649,
      "end": 3653,
      "loc": {
        "start": {
          "line": 92,
          "column": 28
        },
        "end": {
          "line": 92,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3653,
      "end": 3654,
      "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": "source",
      "start": 3654,
      "end": 3660,
      "loc": {
        "start": {
          "line": 92,
          "column": 33
        },
        "end": {
          "line": 92,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3660,
      "end": 3661,
      "loc": {
        "start": {
          "line": 92,
          "column": 39
        },
        "end": {
          "line": 92,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "target",
      "start": 3662,
      "end": 3668,
      "loc": {
        "start": {
          "line": 92,
          "column": 41
        },
        "end": {
          "line": 92,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3668,
      "end": 3669,
      "loc": {
        "start": {
          "line": 92,
          "column": 47
        },
        "end": {
          "line": 92,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_",
      "start": 3670,
      "end": 3671,
      "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,
        "updateContext": null
      },
      "start": 3671,
      "end": 3672,
      "loc": {
        "start": {
          "line": 92,
          "column": 50
        },
        "end": {
          "line": 92,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "extend",
      "start": 3672,
      "end": 3678,
      "loc": {
        "start": {
          "line": 92,
          "column": 51
        },
        "end": {
          "line": 92,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3678,
      "end": 3679,
      "loc": {
        "start": {
          "line": 92,
          "column": 57
        },
        "end": {
          "line": 92,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3679,
      "end": 3686,
      "loc": {
        "start": {
          "line": 92,
          "column": 58
        },
        "end": {
          "line": 92,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3686,
      "end": 3687,
      "loc": {
        "start": {
          "line": 92,
          "column": 65
        },
        "end": {
          "line": 92,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 3688,
      "end": 3694,
      "loc": {
        "start": {
          "line": 92,
          "column": 67
        },
        "end": {
          "line": 92,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3694,
      "end": 3695,
      "loc": {
        "start": {
          "line": 92,
          "column": 73
        },
        "end": {
          "line": 92,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "options",
      "start": 3695,
      "end": 3702,
      "loc": {
        "start": {
          "line": 92,
          "column": 74
        },
        "end": {
          "line": 92,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3702,
      "end": 3703,
      "loc": {
        "start": {
          "line": 92,
          "column": 81
        },
        "end": {
          "line": 92,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3703,
      "end": 3704,
      "loc": {
        "start": {
          "line": 92,
          "column": 82
        },
        "end": {
          "line": 92,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3704,
      "end": 3705,
      "loc": {
        "start": {
          "line": 92,
          "column": 83
        },
        "end": {
          "line": 92,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 3710,
      "end": 3716,
      "loc": {
        "start": {
          "line": 93,
          "column": 4
        },
        "end": {
          "line": 93,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3716,
      "end": 3717,
      "loc": {
        "start": {
          "line": 93,
          "column": 10
        },
        "end": {
          "line": 93,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associations",
      "start": 3717,
      "end": 3729,
      "loc": {
        "start": {
          "line": 93,
          "column": 11
        },
        "end": {
          "line": 93,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3729,
      "end": 3730,
      "loc": {
        "start": {
          "line": 93,
          "column": 23
        },
        "end": {
          "line": 93,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 3730,
      "end": 3741,
      "loc": {
        "start": {
          "line": 93,
          "column": 24
        },
        "end": {
          "line": 93,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3741,
      "end": 3742,
      "loc": {
        "start": {
          "line": 93,
          "column": 35
        },
        "end": {
          "line": 93,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "associationAccessor",
      "start": 3742,
      "end": 3761,
      "loc": {
        "start": {
          "line": 93,
          "column": 36
        },
        "end": {
          "line": 93,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3761,
      "end": 3762,
      "loc": {
        "start": {
          "line": 93,
          "column": 55
        },
        "end": {
          "line": 93,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3763,
      "end": 3764,
      "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": "association",
      "start": 3765,
      "end": 3776,
      "loc": {
        "start": {
          "line": 93,
          "column": 59
        },
        "end": {
          "line": 93,
          "column": 70
        }
      }
    },
    {
      "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": 93,
          "column": 70
        },
        "end": {
          "line": 93,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 3783,
      "end": 3794,
      "loc": {
        "start": {
          "line": 95,
          "column": 4
        },
        "end": {
          "line": 95,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3794,
      "end": 3795,
      "loc": {
        "start": {
          "line": 95,
          "column": 15
        },
        "end": {
          "line": 95,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "injectAttributes",
      "start": 3795,
      "end": 3811,
      "loc": {
        "start": {
          "line": 95,
          "column": 16
        },
        "end": {
          "line": 95,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3811,
      "end": 3812,
      "loc": {
        "start": {
          "line": 95,
          "column": 32
        },
        "end": {
          "line": 95,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3812,
      "end": 3813,
      "loc": {
        "start": {
          "line": 95,
          "column": 33
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3813,
      "end": 3814,
      "loc": {
        "start": {
          "line": 95,
          "column": 34
        },
        "end": {
          "line": 95,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 3819,
      "end": 3830,
      "loc": {
        "start": {
          "line": 96,
          "column": 4
        },
        "end": {
          "line": 96,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3830,
      "end": 3831,
      "loc": {
        "start": {
          "line": 96,
          "column": 15
        },
        "end": {
          "line": 96,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mixin",
      "start": 3831,
      "end": 3836,
      "loc": {
        "start": {
          "line": 96,
          "column": 16
        },
        "end": {
          "line": 96,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3836,
      "end": 3837,
      "loc": {
        "start": {
          "line": 96,
          "column": 21
        },
        "end": {
          "line": 96,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 3837,
      "end": 3843,
      "loc": {
        "start": {
          "line": 96,
          "column": 22
        },
        "end": {
          "line": 96,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3843,
      "end": 3844,
      "loc": {
        "start": {
          "line": 96,
          "column": 28
        },
        "end": {
          "line": 96,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "prototype",
      "start": 3844,
      "end": 3853,
      "loc": {
        "start": {
          "line": 96,
          "column": 29
        },
        "end": {
          "line": 96,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3853,
      "end": 3854,
      "loc": {
        "start": {
          "line": 96,
          "column": 38
        },
        "end": {
          "line": 96,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3854,
      "end": 3855,
      "loc": {
        "start": {
          "line": 96,
          "column": 39
        },
        "end": {
          "line": 96,
          "column": 40
        }
      }
    },
    {
      "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": 3861,
      "end": 3867,
      "loc": {
        "start": {
          "line": 98,
          "column": 4
        },
        "end": {
          "line": 98,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "association",
      "start": 3868,
      "end": 3879,
      "loc": {
        "start": {
          "line": 98,
          "column": 11
        },
        "end": {
          "line": 98,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3879,
      "end": 3880,
      "loc": {
        "start": {
          "line": 98,
          "column": 22
        },
        "end": {
          "line": 98,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3883,
      "end": 3884,
      "loc": {
        "start": {
          "line": 99,
          "column": 2
        },
        "end": {
          "line": 99,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3884,
      "end": 3885,
      "loc": {
        "start": {
          "line": 99,
          "column": 3
        },
        "end": {
          "line": 99,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3886,
      "end": 3887,
      "loc": {
        "start": {
          "line": 100,
          "column": 0
        },
        "end": {
          "line": 100,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 3889,
      "end": 3894,
      "loc": {
        "start": {
          "line": 102,
          "column": 0
        },
        "end": {
          "line": 102,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3894,
      "end": 3895,
      "loc": {
        "start": {
          "line": 102,
          "column": 5
        },
        "end": {
          "line": 102,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hasOne",
      "start": 3895,
      "end": 3901,
      "loc": {
        "start": {
          "line": 102,
          "column": 6
        },
        "end": {
          "line": 102,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3902,
      "end": 3903,
      "loc": {
        "start": {
          "line": 102,
          "column": 13
        },
        "end": {
          "line": 102,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "singleLinked",
      "start": 3904,
      "end": 3916,
      "loc": {
        "start": {
          "line": 102,
          "column": 15
        },
        "end": {
          "line": 102,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3916,
      "end": 3917,
      "loc": {
        "start": {
          "line": 102,
          "column": 27
        },
        "end": {
          "line": 102,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "HasOne",
      "start": 3917,
      "end": 3923,
      "loc": {
        "start": {
          "line": 102,
          "column": 28
        },
        "end": {
          "line": 102,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3923,
      "end": 3924,
      "loc": {
        "start": {
          "line": 102,
          "column": 34
        },
        "end": {
          "line": 102,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3924,
      "end": 3925,
      "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": "Mixin",
      "start": 3927,
      "end": 3932,
      "loc": {
        "start": {
          "line": 104,
          "column": 0
        },
        "end": {
          "line": 104,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3932,
      "end": 3933,
      "loc": {
        "start": {
          "line": 104,
          "column": 5
        },
        "end": {
          "line": 104,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "belongsTo",
      "start": 3933,
      "end": 3942,
      "loc": {
        "start": {
          "line": 104,
          "column": 6
        },
        "end": {
          "line": 104,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3943,
      "end": 3944,
      "loc": {
        "start": {
          "line": 104,
          "column": 16
        },
        "end": {
          "line": 104,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "singleLinked",
      "start": 3945,
      "end": 3957,
      "loc": {
        "start": {
          "line": 104,
          "column": 18
        },
        "end": {
          "line": 104,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3957,
      "end": 3958,
      "loc": {
        "start": {
          "line": 104,
          "column": 30
        },
        "end": {
          "line": 104,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "BelongsTo",
      "start": 3958,
      "end": 3967,
      "loc": {
        "start": {
          "line": 104,
          "column": 31
        },
        "end": {
          "line": 104,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3967,
      "end": 3968,
      "loc": {
        "start": {
          "line": 104,
          "column": 40
        },
        "end": {
          "line": 104,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3968,
      "end": 3969,
      "loc": {
        "start": {
          "line": 104,
          "column": 41
        },
        "end": {
          "line": 104,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 3971,
      "end": 3977,
      "loc": {
        "start": {
          "line": 106,
          "column": 0
        },
        "end": {
          "line": 106,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3977,
      "end": 3978,
      "loc": {
        "start": {
          "line": 106,
          "column": 6
        },
        "end": {
          "line": 106,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exports",
      "start": 3978,
      "end": 3985,
      "loc": {
        "start": {
          "line": 106,
          "column": 7
        },
        "end": {
          "line": 106,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3986,
      "end": 3987,
      "loc": {
        "start": {
          "line": 106,
          "column": 15
        },
        "end": {
          "line": 106,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 3988,
      "end": 3993,
      "loc": {
        "start": {
          "line": 106,
          "column": 17
        },
        "end": {
          "line": 106,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3993,
      "end": 3994,
      "loc": {
        "start": {
          "line": 106,
          "column": 22
        },
        "end": {
          "line": 106,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 3995,
      "end": 4001,
      "loc": {
        "start": {
          "line": 107,
          "column": 0
        },
        "end": {
          "line": 107,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4001,
      "end": 4002,
      "loc": {
        "start": {
          "line": 107,
          "column": 6
        },
        "end": {
          "line": 107,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exports",
      "start": 4002,
      "end": 4009,
      "loc": {
        "start": {
          "line": 107,
          "column": 7
        },
        "end": {
          "line": 107,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4009,
      "end": 4010,
      "loc": {
        "start": {
          "line": 107,
          "column": 14
        },
        "end": {
          "line": 107,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 4010,
      "end": 4015,
      "loc": {
        "start": {
          "line": 107,
          "column": 15
        },
        "end": {
          "line": 107,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4016,
      "end": 4017,
      "loc": {
        "start": {
          "line": 107,
          "column": 21
        },
        "end": {
          "line": 107,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 4018,
      "end": 4023,
      "loc": {
        "start": {
          "line": 107,
          "column": 23
        },
        "end": {
          "line": 107,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4023,
      "end": 4024,
      "loc": {
        "start": {
          "line": 107,
          "column": 28
        },
        "end": {
          "line": 107,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "module",
      "start": 4025,
      "end": 4031,
      "loc": {
        "start": {
          "line": 108,
          "column": 0
        },
        "end": {
          "line": 108,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4031,
      "end": 4032,
      "loc": {
        "start": {
          "line": 108,
          "column": 6
        },
        "end": {
          "line": 108,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exports",
      "start": 4032,
      "end": 4039,
      "loc": {
        "start": {
          "line": 108,
          "column": 7
        },
        "end": {
          "line": 108,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4039,
      "end": 4040,
      "loc": {
        "start": {
          "line": 108,
          "column": 14
        },
        "end": {
          "line": 108,
          "column": 15
        }
      }
    },
    {
      "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": 4040,
      "end": 4047,
      "loc": {
        "start": {
          "line": 108,
          "column": 15
        },
        "end": {
          "line": 108,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4048,
      "end": 4049,
      "loc": {
        "start": {
          "line": 108,
          "column": 23
        },
        "end": {
          "line": 108,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mixin",
      "start": 4050,
      "end": 4055,
      "loc": {
        "start": {
          "line": 108,
          "column": 25
        },
        "end": {
          "line": 108,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4055,
      "end": 4056,
      "loc": {
        "start": {
          "line": 108,
          "column": 30
        },
        "end": {
          "line": 108,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4057,
      "end": 4057,
      "loc": {
        "start": {
          "line": 109,
          "column": 0
        },
        "end": {
          "line": 109,
          "column": 0
        }
      }
    }
  ]
}