{
  "type": "Program",
  "statements": [
    {
      "type": "TSInterfaceDeclaration",
      "body": {
        "type": "TSInterfaceBody",
        "body": [],
        "loc": {
          "start": {
            "line": 16,
            "column": 27
          },
          "end": {
            "line": 16,
            "column": 29
          }
        }
      },
      "id": {
        "type": "Identifier",
        "name": "CustomComponent",
        "decorators": [],
        "loc": {
          "start": {
            "line": 16,
            "column": 11
          },
          "end": {
            "line": 16,
            "column": 26
          }
        }
      },
      "extends": [],
      "loc": {
        "start": {
          "line": 16,
          "column": 1
        },
        "end": {
          "line": 17,
          "column": 6
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "ArkComponent",
          "decorators": [],
          "loc": {
            "start": {
              "line": 17,
              "column": 7
            },
            "end": {
              "line": 17,
              "column": 19
            }
          }
        },
        "superClass": null,
        "implements": [],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "width",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 18,
                  "column": 5
                },
                "end": {
                  "line": 18,
                  "column": 10
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "width",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 5
                    },
                    "end": {
                      "line": 18,
                      "column": 10
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "value",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "string",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 18
                              },
                              "end": {
                                "line": 18,
                                "column": 24
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 18
                            },
                            "end": {
                              "line": 18,
                              "column": 25
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 18
                          },
                          "end": {
                            "line": 18,
                            "column": 25
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 11
                        },
                        "end": {
                          "line": 18,
                          "column": 25
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 18,
                        "column": 11
                      },
                      "end": {
                        "line": 18,
                        "column": 25
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "ArkComponent",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 27
                        },
                        "end": {
                          "line": 18,
                          "column": 39
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 18,
                        "column": 27
                      },
                      "end": {
                        "line": 18,
                        "column": 41
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 27
                    },
                    "end": {
                      "line": 18,
                      "column": 41
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "console",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 9
                              },
                              "end": {
                                "line": 19,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "log",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 17
                              },
                              "end": {
                                "line": 19,
                                "column": 20
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 9
                            },
                            "end": {
                              "line": 19,
                              "column": 20
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "StringLiteral",
                            "value": "setting width 100%",
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 21
                              },
                              "end": {
                                "line": 19,
                                "column": 41
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 9
                          },
                          "end": {
                            "line": 19,
                            "column": 42
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 19,
                          "column": 9
                        },
                        "end": {
                          "line": 19,
                          "column": 42
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "ThisExpression",
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 16
                          },
                          "end": {
                            "line": 20,
                            "column": 20
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 9
                        },
                        "end": {
                          "line": 20,
                          "column": 20
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 40
                    },
                    "end": {
                      "line": 21,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 18,
                    "column": 10
                  },
                  "end": {
                    "line": 21,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 18,
                  "column": 10
                },
                "end": {
                  "line": 21,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 18,
                "column": 5
              },
              "end": {
                "line": 21,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "height",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 22,
                  "column": 5
                },
                "end": {
                  "line": 22,
                  "column": 11
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "height",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 5
                    },
                    "end": {
                      "line": 22,
                      "column": 11
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "value",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "string",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 19
                              },
                              "end": {
                                "line": 22,
                                "column": 25
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 19
                            },
                            "end": {
                              "line": 22,
                              "column": 26
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 19
                          },
                          "end": {
                            "line": 22,
                            "column": 26
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 12
                        },
                        "end": {
                          "line": 22,
                          "column": 26
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 12
                      },
                      "end": {
                        "line": 22,
                        "column": 26
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "ArkComponent",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 28
                        },
                        "end": {
                          "line": 22,
                          "column": 40
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 28
                      },
                      "end": {
                        "line": 22,
                        "column": 42
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 28
                    },
                    "end": {
                      "line": 22,
                      "column": 42
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "console",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 9
                              },
                              "end": {
                                "line": 23,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "log",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 17
                              },
                              "end": {
                                "line": 23,
                                "column": 20
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 9
                            },
                            "end": {
                              "line": 23,
                              "column": 20
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "StringLiteral",
                            "value": "setting width 100%",
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 21
                              },
                              "end": {
                                "line": 23,
                                "column": 41
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 9
                          },
                          "end": {
                            "line": 23,
                            "column": 42
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 9
                        },
                        "end": {
                          "line": 23,
                          "column": 42
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "ThisExpression",
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 16
                          },
                          "end": {
                            "line": 24,
                            "column": 20
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 9
                        },
                        "end": {
                          "line": 24,
                          "column": 20
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 41
                    },
                    "end": {
                      "line": 25,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 22,
                    "column": 11
                  },
                  "end": {
                    "line": 25,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 22,
                  "column": 11
                },
                "end": {
                  "line": 25,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 22,
                "column": 5
              },
              "end": {
                "line": 25,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "color",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 26,
                  "column": 5
                },
                "end": {
                  "line": 26,
                  "column": 10
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "color",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 5
                    },
                    "end": {
                      "line": 26,
                      "column": 10
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "value",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "string",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 18
                              },
                              "end": {
                                "line": 26,
                                "column": 24
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 18
                            },
                            "end": {
                              "line": 26,
                              "column": 25
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 18
                          },
                          "end": {
                            "line": 26,
                            "column": 25
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 11
                        },
                        "end": {
                          "line": 26,
                          "column": 25
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 26,
                        "column": 11
                      },
                      "end": {
                        "line": 26,
                        "column": 25
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "ArkComponent",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 27
                        },
                        "end": {
                          "line": 26,
                          "column": 39
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 26,
                        "column": 27
                      },
                      "end": {
                        "line": 26,
                        "column": 41
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 27
                    },
                    "end": {
                      "line": 26,
                      "column": 41
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "console",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 9
                              },
                              "end": {
                                "line": 27,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "log",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 17
                              },
                              "end": {
                                "line": 27,
                                "column": 20
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 9
                            },
                            "end": {
                              "line": 27,
                              "column": 20
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "StringLiteral",
                            "value": "setting width 100%",
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 21
                              },
                              "end": {
                                "line": 27,
                                "column": 41
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 9
                          },
                          "end": {
                            "line": 27,
                            "column": 42
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 9
                        },
                        "end": {
                          "line": 27,
                          "column": 42
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "ThisExpression",
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 16
                          },
                          "end": {
                            "line": 28,
                            "column": 20
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 9
                        },
                        "end": {
                          "line": 28,
                          "column": 20
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 40
                    },
                    "end": {
                      "line": 29,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 26,
                    "column": 10
                  },
                  "end": {
                    "line": 29,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 26,
                  "column": 10
                },
                "end": {
                  "line": 29,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 26,
                "column": 5
              },
              "end": {
                "line": 29,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 30,
                "column": 2
              },
              "end": {
                "line": 30,
                "column": 2
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 17,
            "column": 20
          },
          "end": {
            "line": 30,
            "column": 2
          }
        }
      },
      "loc": {
        "start": {
          "line": 17,
          "column": 1
        },
        "end": {
          "line": 30,
          "column": 2
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "ArkStructCommon",
          "decorators": [],
          "loc": {
            "start": {
              "line": 36,
              "column": 14
            },
            "end": {
              "line": 36,
              "column": 29
            }
          }
        },
        "superClass": {
          "type": "ETSTypeReference",
          "part": {
            "type": "ETSTypeReferencePart",
            "name": {
              "type": "Identifier",
              "name": "ArkComponent",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 36,
                  "column": 38
                },
                "end": {
                  "line": 36,
                  "column": 50
                }
              }
            },
            "loc": {
              "start": {
                "line": 36,
                "column": 38
              },
              "end": {
                "line": 36,
                "column": 61
              }
            }
          },
          "loc": {
            "start": {
              "line": 36,
              "column": 38
            },
            "end": {
              "line": 36,
              "column": 61
            }
          }
        },
        "implements": [
          {
            "type": "TSClassImplements",
            "expression": {
              "type": "ETSTypeReference",
              "part": {
                "type": "ETSTypeReferencePart",
                "name": {
                  "type": "Identifier",
                  "name": "CustomComponent",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 36,
                      "column": 62
                    },
                    "end": {
                      "line": 36,
                      "column": 77
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 36,
                    "column": 62
                  },
                  "end": {
                    "line": 36,
                    "column": 79
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 36,
                  "column": 62
                },
                "end": {
                  "line": 36,
                  "column": 79
                }
              }
            },
            "loc": {
              "start": {
                "line": 36,
                "column": 62
              },
              "end": {
                "line": 36,
                "column": 79
              }
            }
          }
        ],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 36,
                "column": 80
              },
              "end": {
                "line": 36,
                "column": 80
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 36,
            "column": 78
          },
          "end": {
            "line": 36,
            "column": 80
          }
        }
      },
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 80
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "ArkCommonStruct0",
          "decorators": [],
          "loc": {
            "start": {
              "line": 38,
              "column": 23
            },
            "end": {
              "line": 38,
              "column": 39
            }
          }
        },
        "typeParameters": {
          "type": "TSTypeParameterDeclaration",
          "params": [
            {
              "type": "TSTypeParameter",
              "name": {
                "type": "Identifier",
                "name": "T",
                "decorators": [],
                "loc": {
                  "start": {
                    "line": 38,
                    "column": 40
                  },
                  "end": {
                    "line": 38,
                    "column": 41
                  }
                }
              },
              "constraint": {
                "type": "ETSTypeReference",
                "part": {
                  "type": "ETSTypeReferencePart",
                  "name": {
                    "type": "Identifier",
                    "name": "ArkCommonStruct0",
                    "decorators": [],
                    "loc": {
                      "start": {
                        "line": 38,
                        "column": 50
                      },
                      "end": {
                        "line": 38,
                        "column": 66
                      }
                    }
                  },
                  "typeParams": {
                    "type": "TSTypeParameterInstantiation",
                    "params": [
                      {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "T",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 38,
                                "column": 67
                              },
                              "end": {
                                "line": 38,
                                "column": 68
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 67
                            },
                            "end": {
                              "line": 38,
                              "column": 70
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 38,
                            "column": 67
                          },
                          "end": {
                            "line": 38,
                            "column": 70
                          }
                        }
                      }
                    ],
                    "loc": {
                      "start": {
                        "line": 38,
                        "column": 66
                      },
                      "end": {
                        "line": 38,
                        "column": 70
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 38,
                      "column": 50
                    },
                    "end": {
                      "line": 38,
                      "column": 70
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 38,
                    "column": 50
                  },
                  "end": {
                    "line": 38,
                    "column": 70
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 38,
                  "column": 40
                },
                "end": {
                  "line": 38,
                  "column": 70
                }
              }
            }
          ],
          "loc": {
            "start": {
              "line": 38,
              "column": 39
            },
            "end": {
              "line": 38,
              "column": 70
            }
          }
        },
        "superClass": {
          "type": "ETSTypeReference",
          "part": {
            "type": "ETSTypeReferencePart",
            "name": {
              "type": "Identifier",
              "name": "ArkStructCommon",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 38,
                  "column": 79
                },
                "end": {
                  "line": 38,
                  "column": 94
                }
              }
            },
            "loc": {
              "start": {
                "line": 38,
                "column": 79
              },
              "end": {
                "line": 38,
                "column": 96
              }
            }
          },
          "loc": {
            "start": {
              "line": 38,
              "column": 79
            },
            "end": {
              "line": 38,
              "column": 96
            }
          }
        },
        "implements": [],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "_instantiate",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 39,
                  "column": 12
                },
                "end": {
                  "line": 39,
                  "column": 24
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": true,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "_instantiate",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 12
                    },
                    "end": {
                      "line": 39,
                      "column": 24
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "builder",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSFunctionType",
                            "params": [
                              {
                                "type": "ETSParameterExpression",
                                "name": {
                                  "type": "Identifier",
                                  "name": "instance",
                                  "typeAnnotation": {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "S",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 77
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 78
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 77
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 79
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 77
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 79
                                      }
                                    }
                                  },
                                  "decorators": [],
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 67
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 79
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 67
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 79
                                  }
                                }
                              }
                            ],
                            "returnType": {
                              "type": "ETSPrimitiveType",
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 83
                                },
                                "end": {
                                  "line": 39,
                                  "column": 87
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 65
                              },
                              "end": {
                                "line": 39,
                                "column": 87
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 91
                              },
                              "end": {
                                "line": 39,
                                "column": 100
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 65
                          },
                          "end": {
                            "line": 39,
                            "column": 100
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 56
                        },
                        "end": {
                          "line": 39,
                          "column": 100
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 56
                      },
                      "end": {
                        "line": 39,
                        "column": 100
                      }
                    }
                  },
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "factory",
                      "typeAnnotation": {
                        "type": "ETSFunctionType",
                        "params": [],
                        "returnType": {
                          "type": "ETSTypeReference",
                          "part": {
                            "type": "ETSTypeReferencePart",
                            "name": {
                              "type": "Identifier",
                              "name": "S",
                              "decorators": [],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 117
                                },
                                "end": {
                                  "line": 39,
                                  "column": 118
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 117
                              },
                              "end": {
                                "line": 39,
                                "column": 119
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 117
                            },
                            "end": {
                              "line": 39,
                              "column": 119
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 111
                          },
                          "end": {
                            "line": 39,
                            "column": 119
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 102
                        },
                        "end": {
                          "line": 39,
                          "column": 119
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 102
                      },
                      "end": {
                        "line": 39,
                        "column": 119
                      }
                    }
                  },
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "Partial",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 135
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 142
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "S",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 143
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 144
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 143
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 145
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 143
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 145
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 142
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 145
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 135
                                },
                                "end": {
                                  "line": 39,
                                  "column": 146
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 135
                              },
                              "end": {
                                "line": 39,
                                "column": 146
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 132
                              },
                              "end": {
                                "line": 39,
                                "column": 133
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 135
                          },
                          "end": {
                            "line": 39,
                            "column": 146
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 120
                        },
                        "end": {
                          "line": 39,
                          "column": 146
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 120
                      },
                      "end": {
                        "line": 39,
                        "column": 146
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "S",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 148
                        },
                        "end": {
                          "line": 39,
                          "column": 149
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 148
                      },
                      "end": {
                        "line": 39,
                        "column": 151
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 148
                    },
                    "end": {
                      "line": 39,
                      "column": 151
                    }
                  }
                },
                "typeParameters": {
                  "type": "TSTypeParameterDeclaration",
                  "params": [
                    {
                      "type": "TSTypeParameter",
                      "name": {
                        "type": "Identifier",
                        "name": "S",
                        "decorators": [],
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 25
                          },
                          "end": {
                            "line": 39,
                            "column": 26
                          }
                        }
                      },
                      "constraint": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "ArkCommonStruct0",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 35
                              },
                              "end": {
                                "line": 39,
                                "column": 51
                              }
                            }
                          },
                          "typeParams": {
                            "type": "TSTypeParameterInstantiation",
                            "params": [
                              {
                                "type": "ETSTypeReference",
                                "part": {
                                  "type": "ETSTypeReferencePart",
                                  "name": {
                                    "type": "Identifier",
                                    "name": "S",
                                    "decorators": [],
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 53
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 55
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 52
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 55
                                  }
                                }
                              }
                            ],
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 51
                              },
                              "end": {
                                "line": 39,
                                "column": 55
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 35
                            },
                            "end": {
                              "line": 39,
                              "column": 55
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 35
                          },
                          "end": {
                            "line": 39,
                            "column": 55
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 25
                        },
                        "end": {
                          "line": 39,
                          "column": 55
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 24
                    },
                    "end": {
                      "line": 39,
                      "column": 55
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "receiver",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 15
                              },
                              "end": {
                                "line": 40,
                                "column": 23
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "Identifier",
                              "name": "remember",
                              "decorators": [],
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 26
                                },
                                "end": {
                                  "line": 40,
                                  "column": 34
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "function": {
                                  "type": "ScriptFunction",
                                  "id": null,
                                  "generator": false,
                                  "async": false,
                                  "expression": false,
                                  "params": [],
                                  "body": {
                                    "type": "BlockStatement",
                                    "statements": [
                                      {
                                        "type": "VariableDeclaration",
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "id": {
                                              "type": "Identifier",
                                              "name": "instance",
                                              "typeAnnotation": {
                                                "type": "ETSTypeReference",
                                                "part": {
                                                  "type": "ETSTypeReferencePart",
                                                  "name": {
                                                    "type": "Identifier",
                                                    "name": "S",
                                                    "decorators": [],
                                                    "loc": {
                                                      "start": {
                                                        "line": 41,
                                                        "column": 29
                                                      },
                                                      "end": {
                                                        "line": 41,
                                                        "column": 30
                                                      }
                                                    }
                                                  },
                                                  "loc": {
                                                    "start": {
                                                      "line": 41,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 41,
                                                      "column": 32
                                                    }
                                                  }
                                                },
                                                "loc": {
                                                  "start": {
                                                    "line": 41,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 41,
                                                    "column": 32
                                                  }
                                                }
                                              },
                                              "decorators": [],
                                              "loc": {
                                                "start": {
                                                  "line": 41,
                                                  "column": 19
                                                },
                                                "end": {
                                                  "line": 41,
                                                  "column": 27
                                                }
                                              }
                                            },
                                            "init": {
                                              "type": "CallExpression",
                                              "callee": {
                                                "type": "Identifier",
                                                "name": "factory",
                                                "decorators": [],
                                                "loc": {
                                                  "start": {
                                                    "line": 41,
                                                    "column": 33
                                                  },
                                                  "end": {
                                                    "line": 41,
                                                    "column": 40
                                                  }
                                                }
                                              },
                                              "arguments": [],
                                              "optional": false,
                                              "loc": {
                                                "start": {
                                                  "line": 41,
                                                  "column": 33
                                                },
                                                "end": {
                                                  "line": 41,
                                                  "column": 42
                                                }
                                              }
                                            },
                                            "loc": {
                                              "start": {
                                                "line": 41,
                                                "column": 19
                                              },
                                              "end": {
                                                "line": 41,
                                                "column": 42
                                              }
                                            }
                                          }
                                        ],
                                        "kind": "const",
                                        "loc": {
                                          "start": {
                                            "line": 41,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 41,
                                            "column": 42
                                          }
                                        }
                                      },
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "object": {
                                              "type": "Identifier",
                                              "name": "instance",
                                              "decorators": [],
                                              "loc": {
                                                "start": {
                                                  "line": 42,
                                                  "column": 13
                                                },
                                                "end": {
                                                  "line": 42,
                                                  "column": 21
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "__initializeStruct",
                                              "decorators": [],
                                              "loc": {
                                                "start": {
                                                  "line": 42,
                                                  "column": 22
                                                },
                                                "end": {
                                                  "line": 42,
                                                  "column": 40
                                                }
                                              }
                                            },
                                            "computed": false,
                                            "optional": false,
                                            "loc": {
                                              "start": {
                                                "line": 42,
                                                "column": 13
                                              },
                                              "end": {
                                                "line": 42,
                                                "column": 40
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "initializers",
                                              "decorators": [],
                                              "loc": {
                                                "start": {
                                                  "line": 42,
                                                  "column": 41
                                                },
                                                "end": {
                                                  "line": 42,
                                                  "column": 53
                                                }
                                              }
                                            }
                                          ],
                                          "optional": false,
                                          "loc": {
                                            "start": {
                                              "line": 42,
                                              "column": 13
                                            },
                                            "end": {
                                              "line": 42,
                                              "column": 54
                                            }
                                          }
                                        },
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 54
                                          }
                                        }
                                      },
                                      {
                                        "type": "ReturnStatement",
                                        "argument": {
                                          "type": "Identifier",
                                          "name": "instance",
                                          "decorators": [],
                                          "loc": {
                                            "start": {
                                              "line": 43,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 43,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "loc": {
                                          "start": {
                                            "line": 43,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 43,
                                            "column": 29
                                          }
                                        }
                                      }
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 41
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 10
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 10
                                  }
                                }
                              }
                            ],
                            "optional": false,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 26
                              },
                              "end": {
                                "line": 44,
                                "column": 11
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 15
                            },
                            "end": {
                              "line": 44,
                              "column": 11
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 9
                        },
                        "end": {
                          "line": 44,
                          "column": 12
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "receiver",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 9
                              },
                              "end": {
                                "line": 46,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_buildWrapper",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 18
                              },
                              "end": {
                                "line": 46,
                                "column": 31
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 9
                            },
                            "end": {
                              "line": 46,
                              "column": 31
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "builder",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 32
                              },
                              "end": {
                                "line": 46,
                                "column": 39
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "initializers",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 41
                              },
                              "end": {
                                "line": 46,
                                "column": 53
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 9
                          },
                          "end": {
                            "line": 46,
                            "column": 54
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 9
                        },
                        "end": {
                          "line": 46,
                          "column": 54
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "receiver",
                        "decorators": [],
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 16
                          },
                          "end": {
                            "line": 47,
                            "column": 24
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 9
                        },
                        "end": {
                          "line": 47,
                          "column": 24
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 150
                    },
                    "end": {
                      "line": 48,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 24
                  },
                  "end": {
                    "line": 48,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 39,
                  "column": 24
                },
                "end": {
                  "line": 48,
                  "column": 6
                }
              }
            },
            "overloads": [
              {
                "type": "MethodDefinition",
                "key": {
                  "type": "Identifier",
                  "name": "_instantiate",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 39,
                      "column": 12
                    },
                    "end": {
                      "line": 39,
                      "column": 24
                    }
                  }
                },
                "kind": "method",
                "accessibility": "public",
                "static": true,
                "optional": false,
                "computed": false,
                "value": {
                  "type": "FunctionExpression",
                  "function": {
                    "type": "ScriptFunction",
                    "id": {
                      "type": "Identifier",
                      "name": "_instantiate",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 12
                        },
                        "end": {
                          "line": 39,
                          "column": 24
                        }
                      }
                    },
                    "generator": false,
                    "async": false,
                    "expression": false,
                    "params": [
                      {
                        "type": "ETSParameterExpression",
                        "name": {
                          "type": "Identifier",
                          "name": "builder",
                          "typeAnnotation": {
                            "type": "ETSUnionType",
                            "types": [
                              {
                                "type": "ETSFunctionType",
                                "params": [
                                  {
                                    "type": "ETSParameterExpression",
                                    "name": {
                                      "type": "Identifier",
                                      "name": "instance",
                                      "typeAnnotation": {
                                        "type": "ETSTypeReference",
                                        "part": {
                                          "type": "ETSTypeReferencePart",
                                          "name": {
                                            "type": "Identifier",
                                            "name": "S",
                                            "decorators": [],
                                            "loc": {
                                              "start": {
                                                "line": 39,
                                                "column": 77
                                              },
                                              "end": {
                                                "line": 39,
                                                "column": 78
                                              }
                                            }
                                          },
                                          "loc": {
                                            "start": {
                                              "line": 39,
                                              "column": 77
                                            },
                                            "end": {
                                              "line": 39,
                                              "column": 79
                                            }
                                          }
                                        },
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 77
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 79
                                          }
                                        }
                                      },
                                      "decorators": [],
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 79
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 1,
                                        "column": 1
                                      },
                                      "end": {
                                        "line": 1,
                                        "column": 1
                                      }
                                    }
                                  }
                                ],
                                "returnType": {
                                  "type": "ETSPrimitiveType",
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 83
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 87
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 1,
                                    "column": 1
                                  },
                                  "end": {
                                    "line": 1,
                                    "column": 1
                                  }
                                }
                              },
                              {
                                "type": "ETSUndefinedType",
                                "loc": {
                                  "start": {
                                    "line": 1,
                                    "column": 1
                                  },
                                  "end": {
                                    "line": 1,
                                    "column": 1
                                  }
                                }
                              }
                            ],
                            "loc": {
                              "start": {
                                "line": 1,
                                "column": 1
                              },
                              "end": {
                                "line": 1,
                                "column": 1
                              }
                            }
                          },
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 56
                            },
                            "end": {
                              "line": 39,
                              "column": 100
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 1,
                            "column": 1
                          },
                          "end": {
                            "line": 1,
                            "column": 1
                          }
                        }
                      },
                      {
                        "type": "ETSParameterExpression",
                        "name": {
                          "type": "Identifier",
                          "name": "factory",
                          "typeAnnotation": {
                            "type": "ETSFunctionType",
                            "params": [],
                            "returnType": {
                              "type": "ETSTypeReference",
                              "part": {
                                "type": "ETSTypeReferencePart",
                                "name": {
                                  "type": "Identifier",
                                  "name": "S",
                                  "decorators": [],
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 117
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 118
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 117
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 119
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 117
                                },
                                "end": {
                                  "line": 39,
                                  "column": 119
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 1,
                                "column": 1
                              },
                              "end": {
                                "line": 1,
                                "column": 1
                              }
                            }
                          },
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 102
                            },
                            "end": {
                              "line": 39,
                              "column": 119
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 1,
                            "column": 1
                          },
                          "end": {
                            "line": 1,
                            "column": 1
                          }
                        }
                      }
                    ],
                    "returnType": {
                      "type": "ETSTypeReference",
                      "part": {
                        "type": "ETSTypeReferencePart",
                        "name": {
                          "type": "Identifier",
                          "name": "S",
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 148
                            },
                            "end": {
                              "line": 39,
                              "column": 149
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 148
                          },
                          "end": {
                            "line": 39,
                            "column": 151
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 148
                        },
                        "end": {
                          "line": 39,
                          "column": 151
                        }
                      }
                    },
                    "typeParameters": {
                      "type": "TSTypeParameterDeclaration",
                      "params": [
                        {
                          "type": "TSTypeParameter",
                          "name": {
                            "type": "Identifier",
                            "name": "S",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 25
                              },
                              "end": {
                                "line": 39,
                                "column": 26
                              }
                            }
                          },
                          "constraint": {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "ArkCommonStruct0",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 51
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "S",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 39,
                                            "column": 52
                                          },
                                          "end": {
                                            "line": 39,
                                            "column": 53
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 52
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 55
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 55
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 51
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 55
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 35
                                },
                                "end": {
                                  "line": 39,
                                  "column": 55
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 35
                              },
                              "end": {
                                "line": 39,
                                "column": 55
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 1,
                              "column": 1
                            },
                            "end": {
                              "line": 1,
                              "column": 1
                            }
                          }
                        }
                      ],
                      "loc": {
                        "start": {
                          "line": 1,
                          "column": 1
                        },
                        "end": {
                          "line": 1,
                          "column": 1
                        }
                      }
                    },
                    "body": {
                      "type": "BlockStatement",
                      "statements": [
                        {
                          "type": "ReturnStatement",
                          "argument": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "object": {
                                "type": "Identifier",
                                "name": "ArkCommonStruct0",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 1,
                                    "column": 1
                                  },
                                  "end": {
                                    "line": 1,
                                    "column": 1
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "_instantiate",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 1,
                                    "column": 1
                                  },
                                  "end": {
                                    "line": 1,
                                    "column": 1
                                  }
                                }
                              },
                              "computed": false,
                              "optional": false,
                              "loc": {
                                "start": {
                                  "line": 1,
                                  "column": 1
                                },
                                "end": {
                                  "line": 1,
                                  "column": 1
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "name": "builder",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 100
                                  }
                                }
                              },
                              {
                                "type": "Identifier",
                                "name": "factory",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 102
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 119
                                  }
                                }
                              },
                              {
                                "type": "UndefinedLiteral",
                                "value": "undefined",
                                "loc": {
                                  "start": {
                                    "line": 1,
                                    "column": 1
                                  },
                                  "end": {
                                    "line": 1,
                                    "column": 1
                                  }
                                }
                              }
                            ],
                            "optional": false,
                            "typeParameters": {
                              "type": "TSTypeParameterInstantiation",
                              "params": [
                                {
                                  "type": "ETSTypeReference",
                                  "part": {
                                    "type": "ETSTypeReferencePart",
                                    "name": {
                                      "type": "Identifier",
                                      "name": "S",
                                      "decorators": [],
                                      "loc": {
                                        "start": {
                                          "line": 1,
                                          "column": 1
                                        },
                                        "end": {
                                          "line": 1,
                                          "column": 1
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 1,
                                        "column": 1
                                      },
                                      "end": {
                                        "line": 1,
                                        "column": 1
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 1,
                                      "column": 1
                                    },
                                    "end": {
                                      "line": 1,
                                      "column": 1
                                    }
                                  }
                                }
                              ],
                              "loc": {
                                "start": {
                                  "line": 1,
                                  "column": 1
                                },
                                "end": {
                                  "line": 1,
                                  "column": 1
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 5
                              },
                              "end": {
                                "line": 48,
                                "column": 6
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 1,
                              "column": 1
                            },
                            "end": {
                              "line": 1,
                              "column": 1
                            }
                          }
                        }
                      ],
                      "loc": {
                        "start": {
                          "line": 1,
                          "column": 1
                        },
                        "end": {
                          "line": 1,
                          "column": 1
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 1242,
                        "column": 1
                      },
                      "end": {
                        "line": 1242,
                        "column": 1
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "overloads": [],
                "decorators": [],
                "loc": {
                  "start": {
                    "line": 39,
                    "column": 5
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              }
            ],
            "decorators": [],
            "loc": {
              "start": {
                "line": 39,
                "column": 5
              },
              "end": {
                "line": 48,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "__initializeStruct",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 49,
                  "column": 15
                },
                "end": {
                  "line": 49,
                  "column": 33
                }
              }
            },
            "kind": "method",
            "accessibility": "protected",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "__initializeStruct",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 15
                    },
                    "end": {
                      "line": 49,
                      "column": 33
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "Partial",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 55
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "T",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 49,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 49,
                                            "column": 57
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 49,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 49,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 49,
                                        "column": 56
                                      },
                                      "end": {
                                        "line": 49,
                                        "column": 58
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 58
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 48
                                },
                                "end": {
                                  "line": 49,
                                  "column": 60
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 48
                              },
                              "end": {
                                "line": 49,
                                "column": 60
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 61
                              },
                              "end": {
                                "line": 49,
                                "column": 70
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 48
                          },
                          "end": {
                            "line": 49,
                            "column": 70
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 34
                        },
                        "end": {
                          "line": 49,
                          "column": 70
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 34
                      },
                      "end": {
                        "line": 49,
                        "column": 70
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 73
                    },
                    "end": {
                      "line": 49,
                      "column": 77
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 78
                    },
                    "end": {
                      "line": 49,
                      "column": 80
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 49,
                    "column": 33
                  },
                  "end": {
                    "line": 49,
                    "column": 80
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 49,
                  "column": 33
                },
                "end": {
                  "line": 49,
                  "column": 80
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 49,
                "column": 5
              },
              "end": {
                "line": 49,
                "column": 80
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "__updateStruct",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 51,
                  "column": 15
                },
                "end": {
                  "line": 51,
                  "column": 29
                }
              }
            },
            "kind": "method",
            "accessibility": "protected",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "__updateStruct",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 15
                    },
                    "end": {
                      "line": 51,
                      "column": 29
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "Partial",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 51
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "T",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 51,
                                            "column": 52
                                          },
                                          "end": {
                                            "line": 51,
                                            "column": 53
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 51,
                                          "column": 52
                                        },
                                        "end": {
                                          "line": 51,
                                          "column": 54
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 51,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 51,
                                        "column": 54
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 51
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 54
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 44
                                },
                                "end": {
                                  "line": 51,
                                  "column": 56
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 44
                              },
                              "end": {
                                "line": 51,
                                "column": 56
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 57
                              },
                              "end": {
                                "line": 51,
                                "column": 66
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 44
                          },
                          "end": {
                            "line": 51,
                            "column": 66
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 30
                        },
                        "end": {
                          "line": 51,
                          "column": 66
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 30
                      },
                      "end": {
                        "line": 51,
                        "column": 66
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 69
                    },
                    "end": {
                      "line": 51,
                      "column": 73
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 74
                    },
                    "end": {
                      "line": 51,
                      "column": 77
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 29
                  },
                  "end": {
                    "line": 51,
                    "column": 77
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 51,
                  "column": 29
                },
                "end": {
                  "line": 51,
                  "column": 77
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 51,
                "column": 5
              },
              "end": {
                "line": 51,
                "column": 77
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "_buildWrapper",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 53,
                  "column": 5
                },
                "end": {
                  "line": 53,
                  "column": 18
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "_buildWrapper",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 5
                    },
                    "end": {
                      "line": 53,
                      "column": 18
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "builder",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSFunctionType",
                            "params": [
                              {
                                "type": "ETSParameterExpression",
                                "name": {
                                  "type": "Identifier",
                                  "name": "instance",
                                  "typeAnnotation": {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "T",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 41
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 42
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 42
                                      }
                                    }
                                  },
                                  "decorators": [],
                                  "loc": {
                                    "start": {
                                      "line": 53,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 53,
                                      "column": 42
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 42
                                  }
                                }
                              }
                            ],
                            "returnType": {
                              "type": "ETSPrimitiveType",
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 46
                                },
                                "end": {
                                  "line": 53,
                                  "column": 50
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 28
                              },
                              "end": {
                                "line": 53,
                                "column": 50
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 54
                              },
                              "end": {
                                "line": 53,
                                "column": 63
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 28
                          },
                          "end": {
                            "line": 53,
                            "column": 63
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 19
                        },
                        "end": {
                          "line": 53,
                          "column": 63
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 19
                      },
                      "end": {
                        "line": 53,
                        "column": 63
                      }
                    }
                  },
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "Partial",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 79
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 86
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "T",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 87
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 88
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 87
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 89
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 87
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 89
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 86
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 89
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 79
                                },
                                "end": {
                                  "line": 53,
                                  "column": 91
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 79
                              },
                              "end": {
                                "line": 53,
                                "column": 91
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 92
                              },
                              "end": {
                                "line": 53,
                                "column": 101
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 79
                          },
                          "end": {
                            "line": 53,
                            "column": 101
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 65
                        },
                        "end": {
                          "line": 53,
                          "column": 101
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 65
                      },
                      "end": {
                        "line": 53,
                        "column": 101
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 104
                    },
                    "end": {
                      "line": 53,
                      "column": 108
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "ThisExpression",
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 13
                              },
                              "end": {
                                "line": 54,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "__updateStruct",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 18
                              },
                              "end": {
                                "line": 54,
                                "column": 32
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 13
                            },
                            "end": {
                              "line": 54,
                              "column": 32
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "initializers",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 33
                              },
                              "end": {
                                "line": 54,
                                "column": 45
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 13
                          },
                          "end": {
                            "line": 54,
                            "column": 46
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 13
                        },
                        "end": {
                          "line": 54,
                          "column": 46
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "ThisExpression",
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 13
                              },
                              "end": {
                                "line": 55,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "build",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 18
                              },
                              "end": {
                                "line": 55,
                                "column": 23
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 13
                            },
                            "end": {
                              "line": 55,
                              "column": 23
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "builder",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 24
                              },
                              "end": {
                                "line": 55,
                                "column": 31
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 55,
                            "column": 13
                          },
                          "end": {
                            "line": 55,
                            "column": 32
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 55,
                          "column": 13
                        },
                        "end": {
                          "line": 55,
                          "column": 32
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 109
                    },
                    "end": {
                      "line": 56,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 53,
                    "column": 18
                  },
                  "end": {
                    "line": 56,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 53,
                  "column": 18
                },
                "end": {
                  "line": 56,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 53,
                "column": 5
              },
              "end": {
                "line": 56,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "build",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 58,
                  "column": 5
                },
                "end": {
                  "line": 58,
                  "column": 10
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "build",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 5
                    },
                    "end": {
                      "line": 58,
                      "column": 10
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "builder",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSFunctionType",
                            "params": [
                              {
                                "type": "ETSParameterExpression",
                                "name": {
                                  "type": "Identifier",
                                  "name": "instance",
                                  "typeAnnotation": {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "T",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 58,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 58,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "decorators": [],
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 34
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 34
                                  }
                                }
                              }
                            ],
                            "returnType": {
                              "type": "ETSPrimitiveType",
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 38
                                },
                                "end": {
                                  "line": 58,
                                  "column": 42
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 20
                              },
                              "end": {
                                "line": 58,
                                "column": 42
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 46
                              },
                              "end": {
                                "line": 58,
                                "column": 55
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 20
                          },
                          "end": {
                            "line": 58,
                            "column": 55
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 11
                        },
                        "end": {
                          "line": 58,
                          "column": 55
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 58,
                        "column": 11
                      },
                      "end": {
                        "line": 58,
                        "column": 55
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 58
                    },
                    "end": {
                      "line": 58,
                      "column": 62
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 63
                    },
                    "end": {
                      "line": 58,
                      "column": 65
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 58,
                    "column": 10
                  },
                  "end": {
                    "line": 58,
                    "column": 65
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 58,
                  "column": 10
                },
                "end": {
                  "line": 58,
                  "column": 65
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 58,
                "column": 5
              },
              "end": {
                "line": 58,
                "column": 65
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 59,
                "column": 2
              },
              "end": {
                "line": 59,
                "column": 2
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 38,
            "column": 95
          },
          "end": {
            "line": 59,
            "column": 2
          }
        }
      },
      "loc": {
        "start": {
          "line": 38,
          "column": 17
        },
        "end": {
          "line": 59,
          "column": 2
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "Column",
          "decorators": [],
          "loc": {
            "start": {
              "line": 61,
              "column": 7
            },
            "end": {
              "line": 61,
              "column": 13
            }
          }
        },
        "superClass": {
          "type": "ETSTypeReference",
          "part": {
            "type": "ETSTypeReferencePart",
            "name": {
              "type": "Identifier",
              "name": "ArkCommonStruct0",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 61,
                  "column": 22
                },
                "end": {
                  "line": 61,
                  "column": 38
                }
              }
            },
            "typeParams": {
              "type": "TSTypeParameterInstantiation",
              "params": [
                {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "Column",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 39
                        },
                        "end": {
                          "line": 61,
                          "column": 45
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 39
                      },
                      "end": {
                        "line": 61,
                        "column": 46
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 39
                    },
                    "end": {
                      "line": 61,
                      "column": 46
                    }
                  }
                }
              ],
              "loc": {
                "start": {
                  "line": 61,
                  "column": 38
                },
                "end": {
                  "line": 61,
                  "column": 46
                }
              }
            },
            "loc": {
              "start": {
                "line": 61,
                "column": 22
              },
              "end": {
                "line": 61,
                "column": 48
              }
            }
          },
          "loc": {
            "start": {
              "line": 61,
              "column": 22
            },
            "end": {
              "line": 61,
              "column": 48
            }
          }
        },
        "implements": [],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "build",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 62,
                  "column": 5
                },
                "end": {
                  "line": 62,
                  "column": 10
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "build",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 5
                    },
                    "end": {
                      "line": 62,
                      "column": 10
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 62,
                      "column": 13
                    },
                    "end": {
                      "line": 62,
                      "column": 15
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 62,
                    "column": 10
                  },
                  "end": {
                    "line": 62,
                    "column": 15
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 62,
                  "column": 10
                },
                "end": {
                  "line": 62,
                  "column": 15
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 62,
                "column": 5
              },
              "end": {
                "line": 62,
                "column": 15
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 63,
                "column": 2
              },
              "end": {
                "line": 63,
                "column": 2
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 61,
            "column": 47
          },
          "end": {
            "line": 63,
            "column": 2
          }
        }
      },
      "loc": {
        "start": {
          "line": 61,
          "column": 1
        },
        "end": {
          "line": 63,
          "column": 2
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "ArkMyStructComponent",
          "decorators": [],
          "loc": {
            "start": {
              "line": 65,
              "column": 7
            },
            "end": {
              "line": 65,
              "column": 27
            }
          }
        },
        "superClass": {
          "type": "ETSTypeReference",
          "part": {
            "type": "ETSTypeReferencePart",
            "name": {
              "type": "Identifier",
              "name": "ArkCommonStruct0",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 65,
                  "column": 36
                },
                "end": {
                  "line": 65,
                  "column": 52
                }
              }
            },
            "typeParams": {
              "type": "TSTypeParameterInstantiation",
              "params": [
                {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "ArkMyStructComponent",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 53
                        },
                        "end": {
                          "line": 65,
                          "column": 73
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 53
                      },
                      "end": {
                        "line": 65,
                        "column": 74
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 53
                    },
                    "end": {
                      "line": 65,
                      "column": 74
                    }
                  }
                }
              ],
              "loc": {
                "start": {
                  "line": 65,
                  "column": 52
                },
                "end": {
                  "line": 65,
                  "column": 74
                }
              }
            },
            "loc": {
              "start": {
                "line": 65,
                "column": 36
              },
              "end": {
                "line": 65,
                "column": 76
              }
            }
          },
          "loc": {
            "start": {
              "line": 65,
              "column": 36
            },
            "end": {
              "line": 65,
              "column": 76
            }
          }
        },
        "implements": [],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "__initializeStruct",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 66,
                  "column": 5
                },
                "end": {
                  "line": 66,
                  "column": 23
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "__initializeStruct",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 5
                    },
                    "end": {
                      "line": 66,
                      "column": 23
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSTypeReference",
                            "part": {
                              "type": "ETSTypeReferencePart",
                              "name": {
                                "type": "Identifier",
                                "name": "Partial",
                                "decorators": [],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 45
                                  }
                                }
                              },
                              "typeParams": {
                                "type": "TSTypeParameterInstantiation",
                                "params": [
                                  {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "ArkMyStructComponent",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 66,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 66,
                                            "column": 66
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 66,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 66,
                                          "column": 67
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 66,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 66,
                                        "column": 67
                                      }
                                    }
                                  }
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 67
                                  }
                                }
                              },
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 38
                                },
                                "end": {
                                  "line": 66,
                                  "column": 69
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 38
                              },
                              "end": {
                                "line": 66,
                                "column": 69
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 70
                              },
                              "end": {
                                "line": 66,
                                "column": 79
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 38
                          },
                          "end": {
                            "line": 66,
                            "column": 79
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 24
                        },
                        "end": {
                          "line": 66,
                          "column": 79
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 24
                      },
                      "end": {
                        "line": 66,
                        "column": 79
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 82
                    },
                    "end": {
                      "line": 66,
                      "column": 86
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 87
                    },
                    "end": {
                      "line": 66,
                      "column": 89
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 66,
                    "column": 23
                  },
                  "end": {
                    "line": 66,
                    "column": 89
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 66,
                  "column": 23
                },
                "end": {
                  "line": 66,
                  "column": 89
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 66,
                "column": 5
              },
              "end": {
                "line": 66,
                "column": 89
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "build",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 67,
                  "column": 5
                },
                "end": {
                  "line": 67,
                  "column": 10
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "build",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 5
                    },
                    "end": {
                      "line": 67,
                      "column": 10
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "builder",
                      "typeAnnotation": {
                        "type": "ETSUnionType",
                        "types": [
                          {
                            "type": "ETSFunctionType",
                            "params": [
                              {
                                "type": "ETSParameterExpression",
                                "name": {
                                  "type": "Identifier",
                                  "name": "instance",
                                  "typeAnnotation": {
                                    "type": "ETSTypeReference",
                                    "part": {
                                      "type": "ETSTypeReferencePart",
                                      "name": {
                                        "type": "Identifier",
                                        "name": "ArkMyStructComponent",
                                        "decorators": [],
                                        "loc": {
                                          "start": {
                                            "line": 67,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 67,
                                            "column": 52
                                          }
                                        }
                                      },
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 67,
                                          "column": 53
                                        }
                                      }
                                    },
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 67,
                                        "column": 53
                                      }
                                    }
                                  },
                                  "decorators": [],
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 53
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 53
                                  }
                                }
                              }
                            ],
                            "returnType": {
                              "type": "ETSPrimitiveType",
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 57
                                },
                                "end": {
                                  "line": 67,
                                  "column": 61
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 20
                              },
                              "end": {
                                "line": 67,
                                "column": 61
                              }
                            }
                          },
                          {
                            "type": "ETSUndefinedType",
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 65
                              },
                              "end": {
                                "line": 67,
                                "column": 74
                              }
                            }
                          }
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 20
                          },
                          "end": {
                            "line": 67,
                            "column": 74
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 11
                        },
                        "end": {
                          "line": 67,
                          "column": 74
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 11
                      },
                      "end": {
                        "line": 67,
                        "column": 74
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 76
                    },
                    "end": {
                      "line": 67,
                      "column": 78
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 67,
                    "column": 10
                  },
                  "end": {
                    "line": 67,
                    "column": 78
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 67,
                  "column": 10
                },
                "end": {
                  "line": 67,
                  "column": 78
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 67,
                "column": 5
              },
              "end": {
                "line": 67,
                "column": 78
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 68,
                "column": 2
              },
              "end": {
                "line": 68,
                "column": 2
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 65,
            "column": 75
          },
          "end": {
            "line": 68,
            "column": 2
          }
        }
      },
      "loc": {
        "start": {
          "line": 65,
          "column": 1
        },
        "end": {
          "line": 68,
          "column": 2
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "A",
          "decorators": [],
          "loc": {
            "start": {
              "line": 70,
              "column": 7
            },
            "end": {
              "line": 70,
              "column": 8
            }
          }
        },
        "typeParameters": {
          "type": "TSTypeParameterDeclaration",
          "params": [
            {
              "type": "TSTypeParameter",
              "name": {
                "type": "Identifier",
                "name": "T",
                "decorators": [],
                "loc": {
                  "start": {
                    "line": 70,
                    "column": 9
                  },
                  "end": {
                    "line": 70,
                    "column": 10
                  }
                }
              },
              "constraint": {
                "type": "ETSTypeReference",
                "part": {
                  "type": "ETSTypeReferencePart",
                  "name": {
                    "type": "Identifier",
                    "name": "A",
                    "decorators": [],
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 19
                      },
                      "end": {
                        "line": 70,
                        "column": 20
                      }
                    }
                  },
                  "typeParams": {
                    "type": "TSTypeParameterInstantiation",
                    "params": [
                      {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "T",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 21
                              },
                              "end": {
                                "line": 70,
                                "column": 22
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 21
                            },
                            "end": {
                              "line": 70,
                              "column": 24
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 21
                          },
                          "end": {
                            "line": 70,
                            "column": 24
                          }
                        }
                      }
                    ],
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 20
                      },
                      "end": {
                        "line": 70,
                        "column": 24
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 19
                    },
                    "end": {
                      "line": 70,
                      "column": 24
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 70,
                    "column": 19
                  },
                  "end": {
                    "line": 70,
                    "column": 24
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 70,
                  "column": 9
                },
                "end": {
                  "line": 70,
                  "column": 24
                }
              }
            }
          ],
          "loc": {
            "start": {
              "line": 70,
              "column": 8
            },
            "end": {
              "line": 70,
              "column": 24
            }
          }
        },
        "superClass": null,
        "implements": [],
        "body": [
          {
            "type": "ClassProperty",
            "key": {
              "type": "Identifier",
              "name": "baz",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 71,
                  "column": 5
                },
                "end": {
                  "line": 71,
                  "column": 8
                }
              }
            },
            "accessibility": "public",
            "static": false,
            "readonly": false,
            "declare": false,
            "optional": false,
            "computed": false,
            "typeAnnotation": {
              "type": "ETSTypeReference",
              "part": {
                "type": "ETSTypeReferencePart",
                "name": {
                  "type": "Identifier",
                  "name": "T",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 71,
                      "column": 10
                    },
                    "end": {
                      "line": 71,
                      "column": 11
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 71,
                    "column": 10
                  },
                  "end": {
                    "line": 71,
                    "column": 12
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 71,
                  "column": 10
                },
                "end": {
                  "line": 71,
                  "column": 12
                }
              }
            },
            "definite": false,
            "decorators": [],
            "loc": {
              "start": {
                "line": 71,
                "column": 5
              },
              "end": {
                "line": 71,
                "column": 12
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "constructor",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "constructor",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "constructor",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "a0",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "T",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 21
                              },
                              "end": {
                                "line": 72,
                                "column": 22
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 21
                            },
                            "end": {
                              "line": 72,
                              "column": 23
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 21
                          },
                          "end": {
                            "line": 72,
                            "column": 23
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 17
                        },
                        "end": {
                          "line": 72,
                          "column": 23
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 17
                      },
                      "end": {
                        "line": 72,
                        "column": 23
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "ThisExpression",
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 9
                              },
                              "end": {
                                "line": 73,
                                "column": 13
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "baz",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 14
                              },
                              "end": {
                                "line": 73,
                                "column": 17
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 9
                            },
                            "end": {
                              "line": 73,
                              "column": 17
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "a0",
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 20
                            },
                            "end": {
                              "line": 73,
                              "column": 22
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 9
                          },
                          "end": {
                            "line": 73,
                            "column": 22
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 9
                        },
                        "end": {
                          "line": 73,
                          "column": 23
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 72,
                      "column": 23
                    },
                    "end": {
                      "line": 74,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 72,
                    "column": 16
                  },
                  "end": {
                    "line": 74,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 72,
                  "column": 16
                },
                "end": {
                  "line": 74,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 72,
                "column": 5
              },
              "end": {
                "line": 74,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "foo",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 75,
                  "column": 5
                },
                "end": {
                  "line": 75,
                  "column": 8
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "foo",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 5
                    },
                    "end": {
                      "line": 75,
                      "column": 8
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "sVar",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "S",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 31
                              },
                              "end": {
                                "line": 75,
                                "column": 32
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 31
                            },
                            "end": {
                              "line": 75,
                              "column": 33
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 31
                          },
                          "end": {
                            "line": 75,
                            "column": 33
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 25
                        },
                        "end": {
                          "line": 75,
                          "column": 33
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 25
                      },
                      "end": {
                        "line": 75,
                        "column": 33
                      }
                    }
                  },
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "Partial",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 48
                              },
                              "end": {
                                "line": 75,
                                "column": 55
                              }
                            }
                          },
                          "typeParams": {
                            "type": "TSTypeParameterInstantiation",
                            "params": [
                              {
                                "type": "ETSTypeReference",
                                "part": {
                                  "type": "ETSTypeReferencePart",
                                  "name": {
                                    "type": "Identifier",
                                    "name": "S",
                                    "decorators": [],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 56
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 57
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 56
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 58
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 58
                                  }
                                }
                              }
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 55
                              },
                              "end": {
                                "line": 75,
                                "column": 58
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 48
                            },
                            "end": {
                              "line": 75,
                              "column": 59
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 48
                          },
                          "end": {
                            "line": 75,
                            "column": 59
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 34
                        },
                        "end": {
                          "line": 75,
                          "column": 59
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 34
                      },
                      "end": {
                        "line": 75,
                        "column": 59
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 61
                    },
                    "end": {
                      "line": 75,
                      "column": 65
                    }
                  }
                },
                "typeParameters": {
                  "type": "TSTypeParameterDeclaration",
                  "params": [
                    {
                      "type": "TSTypeParameter",
                      "name": {
                        "type": "Identifier",
                        "name": "S",
                        "decorators": [],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 9
                          },
                          "end": {
                            "line": 75,
                            "column": 10
                          }
                        }
                      },
                      "constraint": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "A",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 19
                              },
                              "end": {
                                "line": 75,
                                "column": 20
                              }
                            }
                          },
                          "typeParams": {
                            "type": "TSTypeParameterInstantiation",
                            "params": [
                              {
                                "type": "ETSTypeReference",
                                "part": {
                                  "type": "ETSTypeReferencePart",
                                  "name": {
                                    "type": "Identifier",
                                    "name": "S",
                                    "decorators": [],
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 24
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 24
                                  }
                                }
                              }
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 20
                              },
                              "end": {
                                "line": 75,
                                "column": 24
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 19
                            },
                            "end": {
                              "line": 75,
                              "column": 24
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 19
                          },
                          "end": {
                            "line": 75,
                            "column": 24
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 9
                        },
                        "end": {
                          "line": 75,
                          "column": 24
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 8
                    },
                    "end": {
                      "line": 75,
                      "column": 24
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "sVar",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 13
                              },
                              "end": {
                                "line": 76,
                                "column": 17
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "bar",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 18
                              },
                              "end": {
                                "line": 76,
                                "column": 21
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 76,
                              "column": 13
                            },
                            "end": {
                              "line": 76,
                              "column": 21
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "initializers",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 22
                              },
                              "end": {
                                "line": 76,
                                "column": 34
                              }
                            }
                          }
                        ],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 76,
                            "column": 13
                          },
                          "end": {
                            "line": 76,
                            "column": 35
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 76,
                          "column": 13
                        },
                        "end": {
                          "line": 76,
                          "column": 35
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "object": {
                            "type": "Identifier",
                            "name": "initializers",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 13
                              },
                              "end": {
                                "line": 77,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "baz",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 26
                              },
                              "end": {
                                "line": 77,
                                "column": 29
                              }
                            }
                          },
                          "computed": false,
                          "optional": false,
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 13
                            },
                            "end": {
                              "line": 77,
                              "column": 29
                            }
                          }
                        },
                        "right": {
                          "type": "Identifier",
                          "name": "sVar",
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 32
                            },
                            "end": {
                              "line": 77,
                              "column": 36
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 77,
                            "column": 13
                          },
                          "end": {
                            "line": 77,
                            "column": 36
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 13
                        },
                        "end": {
                          "line": 77,
                          "column": 36
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 66
                    },
                    "end": {
                      "line": 78,
                      "column": 6
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 75,
                    "column": 8
                  },
                  "end": {
                    "line": 78,
                    "column": 6
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 75,
                  "column": 8
                },
                "end": {
                  "line": 78,
                  "column": 6
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 75,
                "column": 5
              },
              "end": {
                "line": 78,
                "column": 6
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "bar",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 79,
                  "column": 5
                },
                "end": {
                  "line": 79,
                  "column": 8
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": false,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "bar",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 5
                    },
                    "end": {
                      "line": 79,
                      "column": 8
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "initializers",
                      "typeAnnotation": {
                        "type": "ETSTypeReference",
                        "part": {
                          "type": "ETSTypeReferencePart",
                          "name": {
                            "type": "Identifier",
                            "name": "Partial",
                            "decorators": [],
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 23
                              },
                              "end": {
                                "line": 79,
                                "column": 30
                              }
                            }
                          },
                          "typeParams": {
                            "type": "TSTypeParameterInstantiation",
                            "params": [
                              {
                                "type": "ETSTypeReference",
                                "part": {
                                  "type": "ETSTypeReferencePart",
                                  "name": {
                                    "type": "Identifier",
                                    "name": "T",
                                    "decorators": [],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 33
                                    }
                                  }
                                },
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 33
                                  }
                                }
                              }
                            ],
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 30
                              },
                              "end": {
                                "line": 79,
                                "column": 33
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 23
                            },
                            "end": {
                              "line": 79,
                              "column": 34
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 23
                          },
                          "end": {
                            "line": 79,
                            "column": 34
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 9
                        },
                        "end": {
                          "line": 79,
                          "column": 34
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 9
                      },
                      "end": {
                        "line": 79,
                        "column": 34
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSPrimitiveType",
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 36
                    },
                    "end": {
                      "line": 79,
                      "column": 40
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 41
                    },
                    "end": {
                      "line": 79,
                      "column": 43
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 79,
                    "column": 8
                  },
                  "end": {
                    "line": 79,
                    "column": 43
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 79,
                  "column": 8
                },
                "end": {
                  "line": 79,
                  "column": 43
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 79,
                "column": 5
              },
              "end": {
                "line": 79,
                "column": 43
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 70,
            "column": 24
          },
          "end": {
            "line": 80,
            "column": 2
          }
        }
      },
      "loc": {
        "start": {
          "line": 70,
          "column": 1
        },
        "end": {
          "line": 80,
          "column": 2
        }
      }
    },
    {
      "type": "ClassDeclaration",
      "definition": {
        "id": {
          "type": "Identifier",
          "name": "ETSGLOBAL",
          "decorators": [],
          "loc": {
            "start": {
              "line": 1,
              "column": 1
            },
            "end": {
              "line": 1,
              "column": 1
            }
          }
        },
        "superClass": null,
        "implements": [],
        "body": [
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "main",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": true,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "main",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 1,
                "column": 1
              },
              "end": {
                "line": 1,
                "column": 1
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "_$init$_",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": true,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "_$init$_",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "statements": [],
                  "loc": {
                    "start": {
                      "line": 1,
                      "column": 1
                    },
                    "end": {
                      "line": 1,
                      "column": 1
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 1
                  },
                  "end": {
                    "line": 1,
                    "column": 1
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 1,
                  "column": 1
                },
                "end": {
                  "line": 1,
                  "column": 1
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 1,
                "column": 1
              },
              "end": {
                "line": 1,
                "column": 1
              }
            }
          },
          {
            "type": "MethodDefinition",
            "key": {
              "type": "Identifier",
              "name": "remember",
              "decorators": [],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 10
                },
                "end": {
                  "line": 32,
                  "column": 18
                }
              }
            },
            "kind": "method",
            "accessibility": "public",
            "static": true,
            "optional": false,
            "computed": false,
            "value": {
              "type": "FunctionExpression",
              "function": {
                "type": "ScriptFunction",
                "id": {
                  "type": "Identifier",
                  "name": "remember",
                  "decorators": [],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 10
                    },
                    "end": {
                      "line": 32,
                      "column": 18
                    }
                  }
                },
                "generator": false,
                "async": false,
                "expression": false,
                "params": [
                  {
                    "type": "ETSParameterExpression",
                    "name": {
                      "type": "Identifier",
                      "name": "exec",
                      "typeAnnotation": {
                        "type": "ETSFunctionType",
                        "params": [],
                        "returnType": {
                          "type": "ETSTypeReference",
                          "part": {
                            "type": "ETSTypeReferencePart",
                            "name": {
                              "type": "Identifier",
                              "name": "Value",
                              "decorators": [],
                              "loc": {
                                "start": {
                                  "line": 32,
                                  "column": 38
                                },
                                "end": {
                                  "line": 32,
                                  "column": 43
                                }
                              }
                            },
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 38
                              },
                              "end": {
                                "line": 32,
                                "column": 44
                              }
                            }
                          },
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 38
                            },
                            "end": {
                              "line": 32,
                              "column": 44
                            }
                          }
                        },
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 32
                          },
                          "end": {
                            "line": 32,
                            "column": 44
                          }
                        }
                      },
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 26
                        },
                        "end": {
                          "line": 32,
                          "column": 44
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 26
                      },
                      "end": {
                        "line": 32,
                        "column": 44
                      }
                    }
                  }
                ],
                "returnType": {
                  "type": "ETSTypeReference",
                  "part": {
                    "type": "ETSTypeReferencePart",
                    "name": {
                      "type": "Identifier",
                      "name": "Value",
                      "decorators": [],
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 46
                        },
                        "end": {
                          "line": 32,
                          "column": 51
                        }
                      }
                    },
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 46
                      },
                      "end": {
                        "line": 32,
                        "column": 53
                      }
                    }
                  },
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 46
                    },
                    "end": {
                      "line": 32,
                      "column": 53
                    }
                  }
                },
                "typeParameters": {
                  "type": "TSTypeParameterDeclaration",
                  "params": [
                    {
                      "type": "TSTypeParameter",
                      "name": {
                        "type": "Identifier",
                        "name": "Value",
                        "decorators": [],
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 19
                          },
                          "end": {
                            "line": 32,
                            "column": 24
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 19
                        },
                        "end": {
                          "line": 32,
                          "column": 25
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 18
                    },
                    "end": {
                      "line": 32,
                      "column": 25
                    }
                  }
                },
                "body": {
                  "type": "BlockStatement",
                  "statements": [
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "exec",
                          "decorators": [],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 12
                            },
                            "end": {
                              "line": 33,
                              "column": 16
                            }
                          }
                        },
                        "arguments": [],
                        "optional": false,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 12
                          },
                          "end": {
                            "line": 33,
                            "column": 18
                          }
                        }
                      },
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 5
                        },
                        "end": {
                          "line": 33,
                          "column": 18
                        }
                      }
                    }
                  ],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 52
                    },
                    "end": {
                      "line": 34,
                      "column": 2
                    }
                  }
                },
                "loc": {
                  "start": {
                    "line": 32,
                    "column": 18
                  },
                  "end": {
                    "line": 34,
                    "column": 2
                  }
                }
              },
              "loc": {
                "start": {
                  "line": 32,
                  "column": 18
                },
                "end": {
                  "line": 34,
                  "column": 2
                }
              }
            },
            "overloads": [],
            "decorators": [],
            "loc": {
              "start": {
                "line": 32,
                "column": 1
              },
              "end": {
                "line": 34,
                "column": 2
              }
            }
          }
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 1
          },
          "end": {
            "line": 1,
            "column": 1
          }
        }
      },
      "loc": {
        "start": {
          "line": 1,
          "column": 1
        },
        "end": {
          "line": 1,
          "column": 1
        }
      }
    }
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 1
    },
    "end": {
      "line": 81,
      "column": 1
    }
  }
}
TypeError: Type 'S' cannot be assigned to type 'T' [partialType_4.ets:77:32]
