1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "VariableDeclaration",
6      "declarations": [
7        {
8          "type": "VariableDeclarator",
9          "id": {
10            "type": "Identifier",
11            "name": "a",
12            "typeAnnotation": {
13              "type": "TSAnyKeyword",
14              "loc": {
15                "start": {
16                  "line": 17,
17                  "column": 8
18                },
19                "end": {
20                  "line": 17,
21                  "column": 11
22                }
23              }
24            },
25            "decorators": [],
26            "loc": {
27              "start": {
28                "line": 17,
29                "column": 5
30              },
31              "end": {
32                "line": 17,
33                "column": 6
34              }
35            }
36          },
37          "init": null,
38          "loc": {
39            "start": {
40              "line": 17,
41              "column": 5
42            },
43            "end": {
44              "line": 17,
45              "column": 6
46            }
47          }
48        }
49      ],
50      "kind": "var",
51      "loc": {
52        "start": {
53          "line": 17,
54          "column": 1
55        },
56        "end": {
57          "line": 17,
58          "column": 12
59        }
60      }
61    },
62    {
63      "type": "VariableDeclaration",
64      "declarations": [
65        {
66          "type": "VariableDeclarator",
67          "id": {
68            "type": "Identifier",
69            "name": "a",
70            "typeAnnotation": {
71              "type": "TSAnyKeyword",
72              "loc": {
73                "start": {
74                  "line": 18,
75                  "column": 8
76                },
77                "end": {
78                  "line": 18,
79                  "column": 11
80                }
81              }
82            },
83            "decorators": [],
84            "loc": {
85              "start": {
86                "line": 18,
87                "column": 5
88              },
89              "end": {
90                "line": 18,
91                "column": 6
92              }
93            }
94          },
95          "init": null,
96          "loc": {
97            "start": {
98              "line": 18,
99              "column": 5
100            },
101            "end": {
102              "line": 18,
103              "column": 6
104            }
105          }
106        }
107      ],
108      "kind": "var",
109      "loc": {
110        "start": {
111          "line": 18,
112          "column": 1
113        },
114        "end": {
115          "line": 18,
116          "column": 12
117        }
118      }
119    },
120    {
121      "type": "VariableDeclaration",
122      "declarations": [
123        {
124          "type": "VariableDeclarator",
125          "id": {
126            "type": "Identifier",
127            "name": "b",
128            "typeAnnotation": {
129              "type": "TSNumberKeyword",
130              "loc": {
131                "start": {
132                  "line": 20,
133                  "column": 8
134                },
135                "end": {
136                  "line": 20,
137                  "column": 14
138                }
139              }
140            },
141            "decorators": [],
142            "loc": {
143              "start": {
144                "line": 20,
145                "column": 5
146              },
147              "end": {
148                "line": 20,
149                "column": 6
150              }
151            }
152          },
153          "init": null,
154          "loc": {
155            "start": {
156              "line": 20,
157              "column": 5
158            },
159            "end": {
160              "line": 20,
161              "column": 6
162            }
163          }
164        }
165      ],
166      "kind": "var",
167      "loc": {
168        "start": {
169          "line": 20,
170          "column": 1
171        },
172        "end": {
173          "line": 20,
174          "column": 15
175        }
176      }
177    },
178    {
179      "type": "VariableDeclaration",
180      "declarations": [
181        {
182          "type": "VariableDeclarator",
183          "id": {
184            "type": "Identifier",
185            "name": "b",
186            "typeAnnotation": {
187              "type": "TSNumberKeyword",
188              "loc": {
189                "start": {
190                  "line": 21,
191                  "column": 8
192                },
193                "end": {
194                  "line": 21,
195                  "column": 14
196                }
197              }
198            },
199            "decorators": [],
200            "loc": {
201              "start": {
202                "line": 21,
203                "column": 5
204              },
205              "end": {
206                "line": 21,
207                "column": 6
208              }
209            }
210          },
211          "init": null,
212          "loc": {
213            "start": {
214              "line": 21,
215              "column": 5
216            },
217            "end": {
218              "line": 21,
219              "column": 6
220            }
221          }
222        }
223      ],
224      "kind": "var",
225      "loc": {
226        "start": {
227          "line": 21,
228          "column": 1
229        },
230        "end": {
231          "line": 21,
232          "column": 15
233        }
234      }
235    },
236    {
237      "type": "VariableDeclaration",
238      "declarations": [
239        {
240          "type": "VariableDeclarator",
241          "id": {
242            "type": "Identifier",
243            "name": "c",
244            "typeAnnotation": {
245              "type": "TSUnionType",
246              "types": [
247                {
248                  "type": "TSNumberKeyword",
249                  "loc": {
250                    "start": {
251                      "line": 23,
252                      "column": 8
253                    },
254                    "end": {
255                      "line": 23,
256                      "column": 14
257                    }
258                  }
259                },
260                {
261                  "type": "TSStringKeyword",
262                  "loc": {
263                    "start": {
264                      "line": 23,
265                      "column": 17
266                    },
267                    "end": {
268                      "line": 23,
269                      "column": 23
270                    }
271                  }
272                }
273              ],
274              "loc": {
275                "start": {
276                  "line": 23,
277                  "column": 8
278                },
279                "end": {
280                  "line": 23,
281                  "column": 23
282                }
283              }
284            },
285            "decorators": [],
286            "loc": {
287              "start": {
288                "line": 23,
289                "column": 5
290              },
291              "end": {
292                "line": 23,
293                "column": 6
294              }
295            }
296          },
297          "init": null,
298          "loc": {
299            "start": {
300              "line": 23,
301              "column": 5
302            },
303            "end": {
304              "line": 23,
305              "column": 6
306            }
307          }
308        }
309      ],
310      "kind": "var",
311      "loc": {
312        "start": {
313          "line": 23,
314          "column": 1
315        },
316        "end": {
317          "line": 23,
318          "column": 24
319        }
320      }
321    },
322    {
323      "type": "VariableDeclaration",
324      "declarations": [
325        {
326          "type": "VariableDeclarator",
327          "id": {
328            "type": "Identifier",
329            "name": "c",
330            "typeAnnotation": {
331              "type": "TSUnionType",
332              "types": [
333                {
334                  "type": "TSStringKeyword",
335                  "loc": {
336                    "start": {
337                      "line": 24,
338                      "column": 8
339                    },
340                    "end": {
341                      "line": 24,
342                      "column": 14
343                    }
344                  }
345                },
346                {
347                  "type": "TSNumberKeyword",
348                  "loc": {
349                    "start": {
350                      "line": 24,
351                      "column": 17
352                    },
353                    "end": {
354                      "line": 24,
355                      "column": 23
356                    }
357                  }
358                }
359              ],
360              "loc": {
361                "start": {
362                  "line": 24,
363                  "column": 8
364                },
365                "end": {
366                  "line": 24,
367                  "column": 23
368                }
369              }
370            },
371            "decorators": [],
372            "loc": {
373              "start": {
374                "line": 24,
375                "column": 5
376              },
377              "end": {
378                "line": 24,
379                "column": 6
380              }
381            }
382          },
383          "init": null,
384          "loc": {
385            "start": {
386              "line": 24,
387              "column": 5
388            },
389            "end": {
390              "line": 24,
391              "column": 6
392            }
393          }
394        }
395      ],
396      "kind": "var",
397      "loc": {
398        "start": {
399          "line": 24,
400          "column": 1
401        },
402        "end": {
403          "line": 24,
404          "column": 24
405        }
406      }
407    },
408    {
409      "type": "VariableDeclaration",
410      "declarations": [
411        {
412          "type": "VariableDeclarator",
413          "id": {
414            "type": "Identifier",
415            "name": "d",
416            "typeAnnotation": {
417              "type": "TSTypeLiteral",
418              "members": [
419                {
420                  "type": "TSPropertySignature",
421                  "computed": false,
422                  "optional": false,
423                  "readonly": false,
424                  "key": {
425                    "type": "Identifier",
426                    "name": "a",
427                    "decorators": [],
428                    "loc": {
429                      "start": {
430                        "line": 26,
431                        "column": 10
432                      },
433                      "end": {
434                        "line": 26,
435                        "column": 11
436                      }
437                    }
438                  },
439                  "typeAnnotation": {
440                    "type": "TSNumberKeyword",
441                    "loc": {
442                      "start": {
443                        "line": 26,
444                        "column": 13
445                      },
446                      "end": {
447                        "line": 26,
448                        "column": 19
449                      }
450                    }
451                  },
452                  "loc": {
453                    "start": {
454                      "line": 26,
455                      "column": 10
456                    },
457                    "end": {
458                      "line": 26,
459                      "column": 20
460                    }
461                  }
462                },
463                {
464                  "type": "TSPropertySignature",
465                  "computed": false,
466                  "optional": false,
467                  "readonly": false,
468                  "key": {
469                    "type": "Identifier",
470                    "name": "b",
471                    "decorators": [],
472                    "loc": {
473                      "start": {
474                        "line": 26,
475                        "column": 21
476                      },
477                      "end": {
478                        "line": 26,
479                        "column": 22
480                      }
481                    }
482                  },
483                  "typeAnnotation": {
484                    "type": "TSStringKeyword",
485                    "loc": {
486                      "start": {
487                        "line": 26,
488                        "column": 24
489                      },
490                      "end": {
491                        "line": 26,
492                        "column": 30
493                      }
494                    }
495                  },
496                  "loc": {
497                    "start": {
498                      "line": 26,
499                      "column": 21
500                    },
501                    "end": {
502                      "line": 26,
503                      "column": 32
504                    }
505                  }
506                }
507              ],
508              "loc": {
509                "start": {
510                  "line": 26,
511                  "column": 8
512                },
513                "end": {
514                  "line": 26,
515                  "column": 32
516                }
517              }
518            },
519            "decorators": [],
520            "loc": {
521              "start": {
522                "line": 26,
523                "column": 5
524              },
525              "end": {
526                "line": 26,
527                "column": 6
528              }
529            }
530          },
531          "init": null,
532          "loc": {
533            "start": {
534              "line": 26,
535              "column": 5
536            },
537            "end": {
538              "line": 26,
539              "column": 6
540            }
541          }
542        }
543      ],
544      "kind": "var",
545      "loc": {
546        "start": {
547          "line": 26,
548          "column": 1
549        },
550        "end": {
551          "line": 26,
552          "column": 33
553        }
554      }
555    },
556    {
557      "type": "VariableDeclaration",
558      "declarations": [
559        {
560          "type": "VariableDeclarator",
561          "id": {
562            "type": "Identifier",
563            "name": "d",
564            "typeAnnotation": {
565              "type": "TSTypeLiteral",
566              "members": [
567                {
568                  "type": "TSPropertySignature",
569                  "computed": false,
570                  "optional": false,
571                  "readonly": false,
572                  "key": {
573                    "type": "Identifier",
574                    "name": "b",
575                    "decorators": [],
576                    "loc": {
577                      "start": {
578                        "line": 27,
579                        "column": 10
580                      },
581                      "end": {
582                        "line": 27,
583                        "column": 11
584                      }
585                    }
586                  },
587                  "typeAnnotation": {
588                    "type": "TSStringKeyword",
589                    "loc": {
590                      "start": {
591                        "line": 27,
592                        "column": 13
593                      },
594                      "end": {
595                        "line": 27,
596                        "column": 19
597                      }
598                    }
599                  },
600                  "loc": {
601                    "start": {
602                      "line": 27,
603                      "column": 10
604                    },
605                    "end": {
606                      "line": 27,
607                      "column": 20
608                    }
609                  }
610                },
611                {
612                  "type": "TSPropertySignature",
613                  "computed": false,
614                  "optional": false,
615                  "readonly": false,
616                  "key": {
617                    "type": "Identifier",
618                    "name": "a",
619                    "decorators": [],
620                    "loc": {
621                      "start": {
622                        "line": 27,
623                        "column": 21
624                      },
625                      "end": {
626                        "line": 27,
627                        "column": 22
628                      }
629                    }
630                  },
631                  "typeAnnotation": {
632                    "type": "TSNumberKeyword",
633                    "loc": {
634                      "start": {
635                        "line": 27,
636                        "column": 24
637                      },
638                      "end": {
639                        "line": 27,
640                        "column": 30
641                      }
642                    }
643                  },
644                  "loc": {
645                    "start": {
646                      "line": 27,
647                      "column": 21
648                    },
649                    "end": {
650                      "line": 27,
651                      "column": 32
652                    }
653                  }
654                }
655              ],
656              "loc": {
657                "start": {
658                  "line": 27,
659                  "column": 8
660                },
661                "end": {
662                  "line": 27,
663                  "column": 32
664                }
665              }
666            },
667            "decorators": [],
668            "loc": {
669              "start": {
670                "line": 27,
671                "column": 5
672              },
673              "end": {
674                "line": 27,
675                "column": 6
676              }
677            }
678          },
679          "init": null,
680          "loc": {
681            "start": {
682              "line": 27,
683              "column": 5
684            },
685            "end": {
686              "line": 27,
687              "column": 6
688            }
689          }
690        }
691      ],
692      "kind": "var",
693      "loc": {
694        "start": {
695          "line": 27,
696          "column": 1
697        },
698        "end": {
699          "line": 27,
700          "column": 33
701        }
702      }
703    },
704    {
705      "type": "VariableDeclaration",
706      "declarations": [
707        {
708          "type": "VariableDeclarator",
709          "id": {
710            "type": "Identifier",
711            "name": "e",
712            "typeAnnotation": {
713              "type": "TSFunctionType",
714              "params": [
715                {
716                  "type": "Identifier",
717                  "name": "a",
718                  "typeAnnotation": {
719                    "type": "TSNumberKeyword",
720                    "loc": {
721                      "start": {
722                        "line": 29,
723                        "column": 12
724                      },
725                      "end": {
726                        "line": 29,
727                        "column": 18
728                      }
729                    }
730                  },
731                  "decorators": [],
732                  "loc": {
733                    "start": {
734                      "line": 29,
735                      "column": 9
736                    },
737                    "end": {
738                      "line": 29,
739                      "column": 10
740                    }
741                  }
742                },
743                {
744                  "type": "Identifier",
745                  "name": "b",
746                  "typeAnnotation": {
747                    "type": "TSArrayType",
748                    "elementType": {
749                      "type": "TSParenthesizedType",
750                      "typeAnnotation": {
751                        "type": "TSUnionType",
752                        "types": [
753                          {
754                            "type": "TSStringKeyword",
755                            "loc": {
756                              "start": {
757                                "line": 29,
758                                "column": 24
759                              },
760                              "end": {
761                                "line": 29,
762                                "column": 30
763                              }
764                            }
765                          },
766                          {
767                            "type": "TSNumberKeyword",
768                            "loc": {
769                              "start": {
770                                "line": 29,
771                                "column": 33
772                              },
773                              "end": {
774                                "line": 29,
775                                "column": 39
776                              }
777                            }
778                          }
779                        ],
780                        "loc": {
781                          "start": {
782                            "line": 29,
783                            "column": 24
784                          },
785                          "end": {
786                            "line": 29,
787                            "column": 39
788                          }
789                        }
790                      },
791                      "loc": {
792                        "start": {
793                          "line": 29,
794                          "column": 23
795                        },
796                        "end": {
797                          "line": 29,
798                          "column": 40
799                        }
800                      }
801                    },
802                    "loc": {
803                      "start": {
804                        "line": 29,
805                        "column": 23
806                      },
807                      "end": {
808                        "line": 29,
809                        "column": 42
810                      }
811                    }
812                  },
813                  "decorators": [],
814                  "loc": {
815                    "start": {
816                      "line": 29,
817                      "column": 20
818                    },
819                    "end": {
820                      "line": 29,
821                      "column": 21
822                    }
823                  }
824                }
825              ],
826              "returnType": {
827                "type": "TSVoidKeyword",
828                "loc": {
829                  "start": {
830                    "line": 29,
831                    "column": 47
832                  },
833                  "end": {
834                    "line": 29,
835                    "column": 51
836                  }
837                }
838              },
839              "loc": {
840                "start": {
841                  "line": 29,
842                  "column": 8
843                },
844                "end": {
845                  "line": 29,
846                  "column": 51
847                }
848              }
849            },
850            "decorators": [],
851            "loc": {
852              "start": {
853                "line": 29,
854                "column": 5
855              },
856              "end": {
857                "line": 29,
858                "column": 6
859              }
860            }
861          },
862          "init": null,
863          "loc": {
864            "start": {
865              "line": 29,
866              "column": 5
867            },
868            "end": {
869              "line": 29,
870              "column": 6
871            }
872          }
873        }
874      ],
875      "kind": "var",
876      "loc": {
877        "start": {
878          "line": 29,
879          "column": 1
880        },
881        "end": {
882          "line": 29,
883          "column": 52
884        }
885      }
886    },
887    {
888      "type": "VariableDeclaration",
889      "declarations": [
890        {
891          "type": "VariableDeclarator",
892          "id": {
893            "type": "Identifier",
894            "name": "e",
895            "typeAnnotation": {
896              "type": "TSFunctionType",
897              "params": [
898                {
899                  "type": "Identifier",
900                  "name": "a",
901                  "typeAnnotation": {
902                    "type": "TSNumberKeyword",
903                    "loc": {
904                      "start": {
905                        "line": 30,
906                        "column": 12
907                      },
908                      "end": {
909                        "line": 30,
910                        "column": 18
911                      }
912                    }
913                  },
914                  "decorators": [],
915                  "loc": {
916                    "start": {
917                      "line": 30,
918                      "column": 9
919                    },
920                    "end": {
921                      "line": 30,
922                      "column": 10
923                    }
924                  }
925                },
926                {
927                  "type": "Identifier",
928                  "name": "b",
929                  "typeAnnotation": {
930                    "type": "TSArrayType",
931                    "elementType": {
932                      "type": "TSParenthesizedType",
933                      "typeAnnotation": {
934                        "type": "TSUnionType",
935                        "types": [
936                          {
937                            "type": "TSStringKeyword",
938                            "loc": {
939                              "start": {
940                                "line": 30,
941                                "column": 24
942                              },
943                              "end": {
944                                "line": 30,
945                                "column": 30
946                              }
947                            }
948                          },
949                          {
950                            "type": "TSNumberKeyword",
951                            "loc": {
952                              "start": {
953                                "line": 30,
954                                "column": 33
955                              },
956                              "end": {
957                                "line": 30,
958                                "column": 39
959                              }
960                            }
961                          }
962                        ],
963                        "loc": {
964                          "start": {
965                            "line": 30,
966                            "column": 24
967                          },
968                          "end": {
969                            "line": 30,
970                            "column": 39
971                          }
972                        }
973                      },
974                      "loc": {
975                        "start": {
976                          "line": 30,
977                          "column": 23
978                        },
979                        "end": {
980                          "line": 30,
981                          "column": 40
982                        }
983                      }
984                    },
985                    "loc": {
986                      "start": {
987                        "line": 30,
988                        "column": 23
989                      },
990                      "end": {
991                        "line": 30,
992                        "column": 42
993                      }
994                    }
995                  },
996                  "decorators": [],
997                  "loc": {
998                    "start": {
999                      "line": 30,
1000                      "column": 20
1001                    },
1002                    "end": {
1003                      "line": 30,
1004                      "column": 21
1005                    }
1006                  }
1007                }
1008              ],
1009              "returnType": {
1010                "type": "TSVoidKeyword",
1011                "loc": {
1012                  "start": {
1013                    "line": 30,
1014                    "column": 47
1015                  },
1016                  "end": {
1017                    "line": 30,
1018                    "column": 51
1019                  }
1020                }
1021              },
1022              "loc": {
1023                "start": {
1024                  "line": 30,
1025                  "column": 8
1026                },
1027                "end": {
1028                  "line": 30,
1029                  "column": 51
1030                }
1031              }
1032            },
1033            "decorators": [],
1034            "loc": {
1035              "start": {
1036                "line": 30,
1037                "column": 5
1038              },
1039              "end": {
1040                "line": 30,
1041                "column": 6
1042              }
1043            }
1044          },
1045          "init": null,
1046          "loc": {
1047            "start": {
1048              "line": 30,
1049              "column": 5
1050            },
1051            "end": {
1052              "line": 30,
1053              "column": 6
1054            }
1055          }
1056        }
1057      ],
1058      "kind": "var",
1059      "loc": {
1060        "start": {
1061          "line": 30,
1062          "column": 1
1063        },
1064        "end": {
1065          "line": 30,
1066          "column": 52
1067        }
1068      }
1069    },
1070    {
1071      "type": "VariableDeclaration",
1072      "declarations": [
1073        {
1074          "type": "VariableDeclarator",
1075          "id": {
1076            "type": "Identifier",
1077            "name": "f",
1078            "typeAnnotation": {
1079              "type": "TSUnionType",
1080              "types": [
1081                {
1082                  "type": "TSTypeLiteral",
1083                  "members": [
1084                    {
1085                      "type": "TSPropertySignature",
1086                      "computed": false,
1087                      "optional": false,
1088                      "readonly": false,
1089                      "key": {
1090                        "type": "Identifier",
1091                        "name": "a",
1092                        "decorators": [],
1093                        "loc": {
1094                          "start": {
1095                            "line": 32,
1096                            "column": 10
1097                          },
1098                          "end": {
1099                            "line": 32,
1100                            "column": 11
1101                          }
1102                        }
1103                      },
1104                      "typeAnnotation": {
1105                        "type": "TSNumberKeyword",
1106                        "loc": {
1107                          "start": {
1108                            "line": 32,
1109                            "column": 13
1110                          },
1111                          "end": {
1112                            "line": 32,
1113                            "column": 19
1114                          }
1115                        }
1116                      },
1117                      "loc": {
1118                        "start": {
1119                          "line": 32,
1120                          "column": 10
1121                        },
1122                        "end": {
1123                          "line": 32,
1124                          "column": 20
1125                        }
1126                      }
1127                    },
1128                    {
1129                      "type": "TSPropertySignature",
1130                      "computed": false,
1131                      "optional": false,
1132                      "readonly": false,
1133                      "key": {
1134                        "type": "Identifier",
1135                        "name": "b",
1136                        "decorators": [],
1137                        "loc": {
1138                          "start": {
1139                            "line": 32,
1140                            "column": 21
1141                          },
1142                          "end": {
1143                            "line": 32,
1144                            "column": 22
1145                          }
1146                        }
1147                      },
1148                      "typeAnnotation": {
1149                        "type": "TSStringKeyword",
1150                        "loc": {
1151                          "start": {
1152                            "line": 32,
1153                            "column": 24
1154                          },
1155                          "end": {
1156                            "line": 32,
1157                            "column": 30
1158                          }
1159                        }
1160                      },
1161                      "loc": {
1162                        "start": {
1163                          "line": 32,
1164                          "column": 21
1165                        },
1166                        "end": {
1167                          "line": 32,
1168                          "column": 32
1169                        }
1170                      }
1171                    }
1172                  ],
1173                  "loc": {
1174                    "start": {
1175                      "line": 32,
1176                      "column": 8
1177                    },
1178                    "end": {
1179                      "line": 32,
1180                      "column": 32
1181                    }
1182                  }
1183                },
1184                {
1185                  "type": "TSTypeLiteral",
1186                  "members": [
1187                    {
1188                      "type": "TSPropertySignature",
1189                      "computed": false,
1190                      "optional": false,
1191                      "readonly": false,
1192                      "key": {
1193                        "type": "Identifier",
1194                        "name": "a",
1195                        "decorators": [],
1196                        "loc": {
1197                          "start": {
1198                            "line": 32,
1199                            "column": 37
1200                          },
1201                          "end": {
1202                            "line": 32,
1203                            "column": 38
1204                          }
1205                        }
1206                      },
1207                      "typeAnnotation": {
1208                        "type": "TSArrayType",
1209                        "elementType": {
1210                          "type": "TSNumberKeyword",
1211                          "loc": {
1212                            "start": {
1213                              "line": 32,
1214                              "column": 40
1215                            },
1216                            "end": {
1217                              "line": 32,
1218                              "column": 46
1219                            }
1220                          }
1221                        },
1222                        "loc": {
1223                          "start": {
1224                            "line": 32,
1225                            "column": 40
1226                          },
1227                          "end": {
1228                            "line": 32,
1229                            "column": 48
1230                          }
1231                        }
1232                      },
1233                      "loc": {
1234                        "start": {
1235                          "line": 32,
1236                          "column": 37
1237                        },
1238                        "end": {
1239                          "line": 32,
1240                          "column": 49
1241                        }
1242                      }
1243                    },
1244                    {
1245                      "type": "TSPropertySignature",
1246                      "computed": false,
1247                      "optional": true,
1248                      "readonly": false,
1249                      "key": {
1250                        "type": "Identifier",
1251                        "name": "b",
1252                        "decorators": [],
1253                        "loc": {
1254                          "start": {
1255                            "line": 32,
1256                            "column": 50
1257                          },
1258                          "end": {
1259                            "line": 32,
1260                            "column": 51
1261                          }
1262                        }
1263                      },
1264                      "typeAnnotation": {
1265                        "type": "TSStringKeyword",
1266                        "loc": {
1267                          "start": {
1268                            "line": 32,
1269                            "column": 54
1270                          },
1271                          "end": {
1272                            "line": 32,
1273                            "column": 60
1274                          }
1275                        }
1276                      },
1277                      "loc": {
1278                        "start": {
1279                          "line": 32,
1280                          "column": 50
1281                        },
1282                        "end": {
1283                          "line": 32,
1284                          "column": 62
1285                        }
1286                      }
1287                    }
1288                  ],
1289                  "loc": {
1290                    "start": {
1291                      "line": 32,
1292                      "column": 35
1293                    },
1294                    "end": {
1295                      "line": 32,
1296                      "column": 62
1297                    }
1298                  }
1299                }
1300              ],
1301              "loc": {
1302                "start": {
1303                  "line": 32,
1304                  "column": 8
1305                },
1306                "end": {
1307                  "line": 32,
1308                  "column": 62
1309                }
1310              }
1311            },
1312            "decorators": [],
1313            "loc": {
1314              "start": {
1315                "line": 32,
1316                "column": 5
1317              },
1318              "end": {
1319                "line": 32,
1320                "column": 6
1321              }
1322            }
1323          },
1324          "init": null,
1325          "loc": {
1326            "start": {
1327              "line": 32,
1328              "column": 5
1329            },
1330            "end": {
1331              "line": 32,
1332              "column": 6
1333            }
1334          }
1335        }
1336      ],
1337      "kind": "var",
1338      "loc": {
1339        "start": {
1340          "line": 32,
1341          "column": 1
1342        },
1343        "end": {
1344          "line": 32,
1345          "column": 63
1346        }
1347      }
1348    },
1349    {
1350      "type": "VariableDeclaration",
1351      "declarations": [
1352        {
1353          "type": "VariableDeclarator",
1354          "id": {
1355            "type": "Identifier",
1356            "name": "f",
1357            "typeAnnotation": {
1358              "type": "TSUnionType",
1359              "types": [
1360                {
1361                  "type": "TSTypeLiteral",
1362                  "members": [
1363                    {
1364                      "type": "TSPropertySignature",
1365                      "computed": false,
1366                      "optional": false,
1367                      "readonly": false,
1368                      "key": {
1369                        "type": "Identifier",
1370                        "name": "a",
1371                        "decorators": [],
1372                        "loc": {
1373                          "start": {
1374                            "line": 33,
1375                            "column": 10
1376                          },
1377                          "end": {
1378                            "line": 33,
1379                            "column": 11
1380                          }
1381                        }
1382                      },
1383                      "typeAnnotation": {
1384                        "type": "TSNumberKeyword",
1385                        "loc": {
1386                          "start": {
1387                            "line": 33,
1388                            "column": 13
1389                          },
1390                          "end": {
1391                            "line": 33,
1392                            "column": 19
1393                          }
1394                        }
1395                      },
1396                      "loc": {
1397                        "start": {
1398                          "line": 33,
1399                          "column": 10
1400                        },
1401                        "end": {
1402                          "line": 33,
1403                          "column": 20
1404                        }
1405                      }
1406                    },
1407                    {
1408                      "type": "TSPropertySignature",
1409                      "computed": false,
1410                      "optional": false,
1411                      "readonly": false,
1412                      "key": {
1413                        "type": "Identifier",
1414                        "name": "b",
1415                        "decorators": [],
1416                        "loc": {
1417                          "start": {
1418                            "line": 33,
1419                            "column": 21
1420                          },
1421                          "end": {
1422                            "line": 33,
1423                            "column": 22
1424                          }
1425                        }
1426                      },
1427                      "typeAnnotation": {
1428                        "type": "TSStringKeyword",
1429                        "loc": {
1430                          "start": {
1431                            "line": 33,
1432                            "column": 24
1433                          },
1434                          "end": {
1435                            "line": 33,
1436                            "column": 30
1437                          }
1438                        }
1439                      },
1440                      "loc": {
1441                        "start": {
1442                          "line": 33,
1443                          "column": 21
1444                        },
1445                        "end": {
1446                          "line": 33,
1447                          "column": 32
1448                        }
1449                      }
1450                    }
1451                  ],
1452                  "loc": {
1453                    "start": {
1454                      "line": 33,
1455                      "column": 8
1456                    },
1457                    "end": {
1458                      "line": 33,
1459                      "column": 32
1460                    }
1461                  }
1462                },
1463                {
1464                  "type": "TSTypeLiteral",
1465                  "members": [
1466                    {
1467                      "type": "TSPropertySignature",
1468                      "computed": false,
1469                      "optional": false,
1470                      "readonly": false,
1471                      "key": {
1472                        "type": "Identifier",
1473                        "name": "a",
1474                        "decorators": [],
1475                        "loc": {
1476                          "start": {
1477                            "line": 33,
1478                            "column": 37
1479                          },
1480                          "end": {
1481                            "line": 33,
1482                            "column": 38
1483                          }
1484                        }
1485                      },
1486                      "typeAnnotation": {
1487                        "type": "TSArrayType",
1488                        "elementType": {
1489                          "type": "TSNumberKeyword",
1490                          "loc": {
1491                            "start": {
1492                              "line": 33,
1493                              "column": 40
1494                            },
1495                            "end": {
1496                              "line": 33,
1497                              "column": 46
1498                            }
1499                          }
1500                        },
1501                        "loc": {
1502                          "start": {
1503                            "line": 33,
1504                            "column": 40
1505                          },
1506                          "end": {
1507                            "line": 33,
1508                            "column": 48
1509                          }
1510                        }
1511                      },
1512                      "loc": {
1513                        "start": {
1514                          "line": 33,
1515                          "column": 37
1516                        },
1517                        "end": {
1518                          "line": 33,
1519                          "column": 49
1520                        }
1521                      }
1522                    },
1523                    {
1524                      "type": "TSPropertySignature",
1525                      "computed": false,
1526                      "optional": true,
1527                      "readonly": false,
1528                      "key": {
1529                        "type": "Identifier",
1530                        "name": "b",
1531                        "decorators": [],
1532                        "loc": {
1533                          "start": {
1534                            "line": 33,
1535                            "column": 50
1536                          },
1537                          "end": {
1538                            "line": 33,
1539                            "column": 51
1540                          }
1541                        }
1542                      },
1543                      "typeAnnotation": {
1544                        "type": "TSStringKeyword",
1545                        "loc": {
1546                          "start": {
1547                            "line": 33,
1548                            "column": 54
1549                          },
1550                          "end": {
1551                            "line": 33,
1552                            "column": 60
1553                          }
1554                        }
1555                      },
1556                      "loc": {
1557                        "start": {
1558                          "line": 33,
1559                          "column": 50
1560                        },
1561                        "end": {
1562                          "line": 33,
1563                          "column": 62
1564                        }
1565                      }
1566                    }
1567                  ],
1568                  "loc": {
1569                    "start": {
1570                      "line": 33,
1571                      "column": 35
1572                    },
1573                    "end": {
1574                      "line": 33,
1575                      "column": 62
1576                    }
1577                  }
1578                }
1579              ],
1580              "loc": {
1581                "start": {
1582                  "line": 33,
1583                  "column": 8
1584                },
1585                "end": {
1586                  "line": 33,
1587                  "column": 62
1588                }
1589              }
1590            },
1591            "decorators": [],
1592            "loc": {
1593              "start": {
1594                "line": 33,
1595                "column": 5
1596              },
1597              "end": {
1598                "line": 33,
1599                "column": 6
1600              }
1601            }
1602          },
1603          "init": null,
1604          "loc": {
1605            "start": {
1606              "line": 33,
1607              "column": 5
1608            },
1609            "end": {
1610              "line": 33,
1611              "column": 6
1612            }
1613          }
1614        }
1615      ],
1616      "kind": "var",
1617      "loc": {
1618        "start": {
1619          "line": 33,
1620          "column": 1
1621        },
1622        "end": {
1623          "line": 33,
1624          "column": 63
1625        }
1626      }
1627    },
1628    {
1629      "type": "TSInterfaceDeclaration",
1630      "body": {
1631        "type": "TSInterfaceBody",
1632        "body": [
1633          {
1634            "type": "TSPropertySignature",
1635            "computed": false,
1636            "optional": false,
1637            "readonly": false,
1638            "key": {
1639              "type": "Identifier",
1640              "name": "a",
1641              "decorators": [],
1642              "loc": {
1643                "start": {
1644                  "line": 36,
1645                  "column": 5
1646                },
1647                "end": {
1648                  "line": 36,
1649                  "column": 6
1650                }
1651              }
1652            },
1653            "typeAnnotation": {
1654              "type": "TSNumberKeyword",
1655              "loc": {
1656                "start": {
1657                  "line": 36,
1658                  "column": 8
1659                },
1660                "end": {
1661                  "line": 36,
1662                  "column": 14
1663                }
1664              }
1665            },
1666            "loc": {
1667              "start": {
1668                "line": 36,
1669                "column": 5
1670              },
1671              "end": {
1672                "line": 36,
1673                "column": 15
1674              }
1675            }
1676          },
1677          {
1678            "type": "TSPropertySignature",
1679            "computed": false,
1680            "optional": false,
1681            "readonly": false,
1682            "key": {
1683              "type": "Identifier",
1684              "name": "b",
1685              "decorators": [],
1686              "loc": {
1687                "start": {
1688                  "line": 37,
1689                  "column": 5
1690                },
1691                "end": {
1692                  "line": 37,
1693                  "column": 6
1694                }
1695              }
1696            },
1697            "typeAnnotation": {
1698              "type": "TSStringKeyword",
1699              "loc": {
1700                "start": {
1701                  "line": 37,
1702                  "column": 8
1703                },
1704                "end": {
1705                  "line": 37,
1706                  "column": 14
1707                }
1708              }
1709            },
1710            "loc": {
1711              "start": {
1712                "line": 37,
1713                "column": 5
1714              },
1715              "end": {
1716                "line": 37,
1717                "column": 15
1718              }
1719            }
1720          }
1721        ],
1722        "loc": {
1723          "start": {
1724            "line": 35,
1725            "column": 22
1726          },
1727          "end": {
1728            "line": 38,
1729            "column": 2
1730          }
1731        }
1732      },
1733      "id": {
1734        "type": "Identifier",
1735        "name": "interface1",
1736        "decorators": [],
1737        "loc": {
1738          "start": {
1739            "line": 35,
1740            "column": 11
1741          },
1742          "end": {
1743            "line": 35,
1744            "column": 21
1745          }
1746        }
1747      },
1748      "extends": [],
1749      "loc": {
1750        "start": {
1751          "line": 35,
1752          "column": 1
1753        },
1754        "end": {
1755          "line": 38,
1756          "column": 2
1757        }
1758      }
1759    },
1760    {
1761      "type": "TSInterfaceDeclaration",
1762      "body": {
1763        "type": "TSInterfaceBody",
1764        "body": [
1765          {
1766            "type": "TSPropertySignature",
1767            "computed": false,
1768            "optional": false,
1769            "readonly": false,
1770            "key": {
1771              "type": "Identifier",
1772              "name": "a",
1773              "decorators": [],
1774              "loc": {
1775                "start": {
1776                  "line": 41,
1777                  "column": 5
1778                },
1779                "end": {
1780                  "line": 41,
1781                  "column": 6
1782                }
1783              }
1784            },
1785            "typeAnnotation": {
1786              "type": "TSNumberKeyword",
1787              "loc": {
1788                "start": {
1789                  "line": 41,
1790                  "column": 8
1791                },
1792                "end": {
1793                  "line": 41,
1794                  "column": 14
1795                }
1796              }
1797            },
1798            "loc": {
1799              "start": {
1800                "line": 41,
1801                "column": 5
1802              },
1803              "end": {
1804                "line": 41,
1805                "column": 15
1806              }
1807            }
1808          },
1809          {
1810            "type": "TSPropertySignature",
1811            "computed": false,
1812            "optional": false,
1813            "readonly": false,
1814            "key": {
1815              "type": "Identifier",
1816              "name": "b",
1817              "decorators": [],
1818              "loc": {
1819                "start": {
1820                  "line": 42,
1821                  "column": 5
1822                },
1823                "end": {
1824                  "line": 42,
1825                  "column": 6
1826                }
1827              }
1828            },
1829            "typeAnnotation": {
1830              "type": "TSStringKeyword",
1831              "loc": {
1832                "start": {
1833                  "line": 42,
1834                  "column": 8
1835                },
1836                "end": {
1837                  "line": 42,
1838                  "column": 14
1839                }
1840              }
1841            },
1842            "loc": {
1843              "start": {
1844                "line": 42,
1845                "column": 5
1846              },
1847              "end": {
1848                "line": 42,
1849                "column": 15
1850              }
1851            }
1852          }
1853        ],
1854        "loc": {
1855          "start": {
1856            "line": 40,
1857            "column": 22
1858          },
1859          "end": {
1860            "line": 43,
1861            "column": 2
1862          }
1863        }
1864      },
1865      "id": {
1866        "type": "Identifier",
1867        "name": "interface2",
1868        "decorators": [],
1869        "loc": {
1870          "start": {
1871            "line": 40,
1872            "column": 11
1873          },
1874          "end": {
1875            "line": 40,
1876            "column": 21
1877          }
1878        }
1879      },
1880      "extends": [],
1881      "loc": {
1882        "start": {
1883          "line": 40,
1884          "column": 1
1885        },
1886        "end": {
1887          "line": 43,
1888          "column": 2
1889        }
1890      }
1891    },
1892    {
1893      "type": "VariableDeclaration",
1894      "declarations": [
1895        {
1896          "type": "VariableDeclarator",
1897          "id": {
1898            "type": "Identifier",
1899            "name": "g",
1900            "typeAnnotation": {
1901              "type": "TSTypeReference",
1902              "typeName": {
1903                "type": "Identifier",
1904                "name": "interface1",
1905                "decorators": [],
1906                "loc": {
1907                  "start": {
1908                    "line": 45,
1909                    "column": 8
1910                  },
1911                  "end": {
1912                    "line": 45,
1913                    "column": 18
1914                  }
1915                }
1916              },
1917              "loc": {
1918                "start": {
1919                  "line": 45,
1920                  "column": 8
1921                },
1922                "end": {
1923                  "line": 45,
1924                  "column": 18
1925                }
1926              }
1927            },
1928            "decorators": [],
1929            "loc": {
1930              "start": {
1931                "line": 45,
1932                "column": 5
1933              },
1934              "end": {
1935                "line": 45,
1936                "column": 6
1937              }
1938            }
1939          },
1940          "init": null,
1941          "loc": {
1942            "start": {
1943              "line": 45,
1944              "column": 5
1945            },
1946            "end": {
1947              "line": 45,
1948              "column": 6
1949            }
1950          }
1951        }
1952      ],
1953      "kind": "var",
1954      "loc": {
1955        "start": {
1956          "line": 45,
1957          "column": 1
1958        },
1959        "end": {
1960          "line": 45,
1961          "column": 19
1962        }
1963      }
1964    },
1965    {
1966      "type": "VariableDeclaration",
1967      "declarations": [
1968        {
1969          "type": "VariableDeclarator",
1970          "id": {
1971            "type": "Identifier",
1972            "name": "g",
1973            "typeAnnotation": {
1974              "type": "TSTypeReference",
1975              "typeName": {
1976                "type": "Identifier",
1977                "name": "interface2",
1978                "decorators": [],
1979                "loc": {
1980                  "start": {
1981                    "line": 46,
1982                    "column": 8
1983                  },
1984                  "end": {
1985                    "line": 46,
1986                    "column": 18
1987                  }
1988                }
1989              },
1990              "loc": {
1991                "start": {
1992                  "line": 46,
1993                  "column": 8
1994                },
1995                "end": {
1996                  "line": 46,
1997                  "column": 18
1998                }
1999              }
2000            },
2001            "decorators": [],
2002            "loc": {
2003              "start": {
2004                "line": 46,
2005                "column": 5
2006              },
2007              "end": {
2008                "line": 46,
2009                "column": 6
2010              }
2011            }
2012          },
2013          "init": null,
2014          "loc": {
2015            "start": {
2016              "line": 46,
2017              "column": 5
2018            },
2019            "end": {
2020              "line": 46,
2021              "column": 6
2022            }
2023          }
2024        }
2025      ],
2026      "kind": "var",
2027      "loc": {
2028        "start": {
2029          "line": 46,
2030          "column": 1
2031        },
2032        "end": {
2033          "line": 46,
2034          "column": 19
2035        }
2036      }
2037    },
2038    {
2039      "type": "TSInterfaceDeclaration",
2040      "body": {
2041        "type": "TSInterfaceBody",
2042        "body": [
2043          {
2044            "type": "TSPropertySignature",
2045            "computed": false,
2046            "optional": false,
2047            "readonly": false,
2048            "key": {
2049              "type": "Identifier",
2050              "name": "c",
2051              "decorators": [],
2052              "loc": {
2053                "start": {
2054                  "line": 49,
2055                  "column": 5
2056                },
2057                "end": {
2058                  "line": 49,
2059                  "column": 6
2060                }
2061              }
2062            },
2063            "typeAnnotation": {
2064              "type": "TSBooleanKeyword",
2065              "loc": {
2066                "start": {
2067                  "line": 49,
2068                  "column": 8
2069                },
2070                "end": {
2071                  "line": 49,
2072                  "column": 15
2073                }
2074              }
2075            },
2076            "loc": {
2077              "start": {
2078                "line": 49,
2079                "column": 5
2080              },
2081              "end": {
2082                "line": 49,
2083                "column": 16
2084              }
2085            }
2086          }
2087        ],
2088        "loc": {
2089          "start": {
2090            "line": 48,
2091            "column": 41
2092          },
2093          "end": {
2094            "line": 50,
2095            "column": 2
2096          }
2097        }
2098      },
2099      "id": {
2100        "type": "Identifier",
2101        "name": "interface3",
2102        "decorators": [],
2103        "loc": {
2104          "start": {
2105            "line": 48,
2106            "column": 11
2107          },
2108          "end": {
2109            "line": 48,
2110            "column": 21
2111          }
2112        }
2113      },
2114      "extends": [
2115        {
2116          "type": "TSInterfaceHeritage",
2117          "expression": {
2118            "type": "TSTypeReference",
2119            "typeName": {
2120              "type": "Identifier",
2121              "name": "interface1",
2122              "decorators": [],
2123              "loc": {
2124                "start": {
2125                  "line": 48,
2126                  "column": 30
2127                },
2128                "end": {
2129                  "line": 48,
2130                  "column": 40
2131                }
2132              }
2133            },
2134            "loc": {
2135              "start": {
2136                "line": 48,
2137                "column": 41
2138              },
2139              "end": {
2140                "line": 48,
2141                "column": 40
2142              }
2143            }
2144          },
2145          "loc": {
2146            "start": {
2147              "line": 48,
2148              "column": 41
2149            },
2150            "end": {
2151              "line": 48,
2152              "column": 40
2153            }
2154          }
2155        }
2156      ],
2157      "loc": {
2158        "start": {
2159          "line": 48,
2160          "column": 1
2161        },
2162        "end": {
2163          "line": 50,
2164          "column": 2
2165        }
2166      }
2167    },
2168    {
2169      "type": "TSInterfaceDeclaration",
2170      "body": {
2171        "type": "TSInterfaceBody",
2172        "body": [
2173          {
2174            "type": "TSPropertySignature",
2175            "computed": false,
2176            "optional": false,
2177            "readonly": false,
2178            "key": {
2179              "type": "Identifier",
2180              "name": "c",
2181              "decorators": [],
2182              "loc": {
2183                "start": {
2184                  "line": 53,
2185                  "column": 5
2186                },
2187                "end": {
2188                  "line": 53,
2189                  "column": 6
2190                }
2191              }
2192            },
2193            "typeAnnotation": {
2194              "type": "TSBooleanKeyword",
2195              "loc": {
2196                "start": {
2197                  "line": 53,
2198                  "column": 8
2199                },
2200                "end": {
2201                  "line": 53,
2202                  "column": 15
2203                }
2204              }
2205            },
2206            "loc": {
2207              "start": {
2208                "line": 53,
2209                "column": 5
2210              },
2211              "end": {
2212                "line": 53,
2213                "column": 16
2214              }
2215            }
2216          }
2217        ],
2218        "loc": {
2219          "start": {
2220            "line": 52,
2221            "column": 41
2222          },
2223          "end": {
2224            "line": 54,
2225            "column": 2
2226          }
2227        }
2228      },
2229      "id": {
2230        "type": "Identifier",
2231        "name": "interface4",
2232        "decorators": [],
2233        "loc": {
2234          "start": {
2235            "line": 52,
2236            "column": 11
2237          },
2238          "end": {
2239            "line": 52,
2240            "column": 21
2241          }
2242        }
2243      },
2244      "extends": [
2245        {
2246          "type": "TSInterfaceHeritage",
2247          "expression": {
2248            "type": "TSTypeReference",
2249            "typeName": {
2250              "type": "Identifier",
2251              "name": "interface2",
2252              "decorators": [],
2253              "loc": {
2254                "start": {
2255                  "line": 52,
2256                  "column": 30
2257                },
2258                "end": {
2259                  "line": 52,
2260                  "column": 40
2261                }
2262              }
2263            },
2264            "loc": {
2265              "start": {
2266                "line": 52,
2267                "column": 41
2268              },
2269              "end": {
2270                "line": 52,
2271                "column": 40
2272              }
2273            }
2274          },
2275          "loc": {
2276            "start": {
2277              "line": 52,
2278              "column": 41
2279            },
2280            "end": {
2281              "line": 52,
2282              "column": 40
2283            }
2284          }
2285        }
2286      ],
2287      "loc": {
2288        "start": {
2289          "line": 52,
2290          "column": 1
2291        },
2292        "end": {
2293          "line": 54,
2294          "column": 2
2295        }
2296      }
2297    },
2298    {
2299      "type": "VariableDeclaration",
2300      "declarations": [
2301        {
2302          "type": "VariableDeclarator",
2303          "id": {
2304            "type": "Identifier",
2305            "name": "h",
2306            "typeAnnotation": {
2307              "type": "TSTypeReference",
2308              "typeName": {
2309                "type": "Identifier",
2310                "name": "interface3",
2311                "decorators": [],
2312                "loc": {
2313                  "start": {
2314                    "line": 56,
2315                    "column": 8
2316                  },
2317                  "end": {
2318                    "line": 56,
2319                    "column": 18
2320                  }
2321                }
2322              },
2323              "loc": {
2324                "start": {
2325                  "line": 56,
2326                  "column": 8
2327                },
2328                "end": {
2329                  "line": 56,
2330                  "column": 18
2331                }
2332              }
2333            },
2334            "decorators": [],
2335            "loc": {
2336              "start": {
2337                "line": 56,
2338                "column": 5
2339              },
2340              "end": {
2341                "line": 56,
2342                "column": 6
2343              }
2344            }
2345          },
2346          "init": null,
2347          "loc": {
2348            "start": {
2349              "line": 56,
2350              "column": 5
2351            },
2352            "end": {
2353              "line": 56,
2354              "column": 6
2355            }
2356          }
2357        }
2358      ],
2359      "kind": "var",
2360      "loc": {
2361        "start": {
2362          "line": 56,
2363          "column": 1
2364        },
2365        "end": {
2366          "line": 56,
2367          "column": 19
2368        }
2369      }
2370    },
2371    {
2372      "type": "VariableDeclaration",
2373      "declarations": [
2374        {
2375          "type": "VariableDeclarator",
2376          "id": {
2377            "type": "Identifier",
2378            "name": "h",
2379            "typeAnnotation": {
2380              "type": "TSTypeReference",
2381              "typeName": {
2382                "type": "Identifier",
2383                "name": "interface4",
2384                "decorators": [],
2385                "loc": {
2386                  "start": {
2387                    "line": 57,
2388                    "column": 8
2389                  },
2390                  "end": {
2391                    "line": 57,
2392                    "column": 18
2393                  }
2394                }
2395              },
2396              "loc": {
2397                "start": {
2398                  "line": 57,
2399                  "column": 8
2400                },
2401                "end": {
2402                  "line": 57,
2403                  "column": 18
2404                }
2405              }
2406            },
2407            "decorators": [],
2408            "loc": {
2409              "start": {
2410                "line": 57,
2411                "column": 5
2412              },
2413              "end": {
2414                "line": 57,
2415                "column": 6
2416              }
2417            }
2418          },
2419          "init": null,
2420          "loc": {
2421            "start": {
2422              "line": 57,
2423              "column": 5
2424            },
2425            "end": {
2426              "line": 57,
2427              "column": 6
2428            }
2429          }
2430        }
2431      ],
2432      "kind": "var",
2433      "loc": {
2434        "start": {
2435          "line": 57,
2436          "column": 1
2437        },
2438        "end": {
2439          "line": 57,
2440          "column": 19
2441        }
2442      }
2443    },
2444    {
2445      "type": "TSInterfaceDeclaration",
2446      "body": {
2447        "type": "TSInterfaceBody",
2448        "body": [
2449          {
2450            "type": "TSCallSignatureDeclaration",
2451            "params": [
2452              {
2453                "type": "Identifier",
2454                "name": "a",
2455                "typeAnnotation": {
2456                  "type": "TSNumberKeyword",
2457                  "loc": {
2458                    "start": {
2459                      "line": 60,
2460                      "column": 9
2461                    },
2462                    "end": {
2463                      "line": 60,
2464                      "column": 15
2465                    }
2466                  }
2467                },
2468                "decorators": [],
2469                "loc": {
2470                  "start": {
2471                    "line": 60,
2472                    "column": 6
2473                  },
2474                  "end": {
2475                    "line": 60,
2476                    "column": 7
2477                  }
2478                }
2479              },
2480              {
2481                "type": "Identifier",
2482                "name": "b",
2483                "typeAnnotation": {
2484                  "type": "TSStringKeyword",
2485                  "loc": {
2486                    "start": {
2487                      "line": 60,
2488                      "column": 20
2489                    },
2490                    "end": {
2491                      "line": 60,
2492                      "column": 26
2493                    }
2494                  }
2495                },
2496                "decorators": [],
2497                "loc": {
2498                  "start": {
2499                    "line": 60,
2500                    "column": 17
2501                  },
2502                  "end": {
2503                    "line": 60,
2504                    "column": 18
2505                  }
2506                }
2507              }
2508            ],
2509            "returnType": {
2510              "type": "TSNumberKeyword",
2511              "loc": {
2512                "start": {
2513                  "line": 60,
2514                  "column": 29
2515                },
2516                "end": {
2517                  "line": 60,
2518                  "column": 35
2519                }
2520              }
2521            },
2522            "loc": {
2523              "start": {
2524                "line": 60,
2525                "column": 5
2526              },
2527              "end": {
2528                "line": 60,
2529                "column": 36
2530              }
2531            }
2532          },
2533          {
2534            "type": "TSCallSignatureDeclaration",
2535            "params": [
2536              {
2537                "type": "Identifier",
2538                "name": "a",
2539                "typeAnnotation": {
2540                  "type": "TSNumberKeyword",
2541                  "loc": {
2542                    "start": {
2543                      "line": 61,
2544                      "column": 9
2545                    },
2546                    "end": {
2547                      "line": 61,
2548                      "column": 15
2549                    }
2550                  }
2551                },
2552                "decorators": [],
2553                "loc": {
2554                  "start": {
2555                    "line": 61,
2556                    "column": 6
2557                  },
2558                  "end": {
2559                    "line": 61,
2560                    "column": 7
2561                  }
2562                }
2563              },
2564              {
2565                "type": "Identifier",
2566                "name": "b",
2567                "typeAnnotation": {
2568                  "type": "TSStringKeyword",
2569                  "loc": {
2570                    "start": {
2571                      "line": 61,
2572                      "column": 20
2573                    },
2574                    "end": {
2575                      "line": 61,
2576                      "column": 26
2577                    }
2578                  }
2579                },
2580                "decorators": [],
2581                "loc": {
2582                  "start": {
2583                    "line": 61,
2584                    "column": 17
2585                  },
2586                  "end": {
2587                    "line": 61,
2588                    "column": 18
2589                  }
2590                }
2591              }
2592            ],
2593            "returnType": {
2594              "type": "TSStringKeyword",
2595              "loc": {
2596                "start": {
2597                  "line": 61,
2598                  "column": 29
2599                },
2600                "end": {
2601                  "line": 61,
2602                  "column": 35
2603                }
2604              }
2605            },
2606            "loc": {
2607              "start": {
2608                "line": 61,
2609                "column": 5
2610              },
2611              "end": {
2612                "line": 61,
2613                "column": 36
2614              }
2615            }
2616          },
2617          {
2618            "type": "TSConstructSignatureDeclaration",
2619            "params": [
2620              {
2621                "type": "Identifier",
2622                "name": "a",
2623                "typeAnnotation": {
2624                  "type": "TSArrayType",
2625                  "elementType": {
2626                    "type": "TSNumberKeyword",
2627                    "loc": {
2628                      "start": {
2629                        "line": 62,
2630                        "column": 12
2631                      },
2632                      "end": {
2633                        "line": 62,
2634                        "column": 18
2635                      }
2636                    }
2637                  },
2638                  "loc": {
2639                    "start": {
2640                      "line": 62,
2641                      "column": 12
2642                    },
2643                    "end": {
2644                      "line": 62,
2645                      "column": 20
2646                    }
2647                  }
2648                },
2649                "decorators": [],
2650                "loc": {
2651                  "start": {
2652                    "line": 62,
2653                    "column": 9
2654                  },
2655                  "end": {
2656                    "line": 62,
2657                    "column": 10
2658                  }
2659                }
2660              },
2661              {
2662                "type": "Identifier",
2663                "name": "b",
2664                "typeAnnotation": {
2665                  "type": "TSTypeLiteral",
2666                  "members": [
2667                    {
2668                      "type": "TSPropertySignature",
2669                      "computed": false,
2670                      "optional": false,
2671                      "readonly": false,
2672                      "key": {
2673                        "type": "Identifier",
2674                        "name": "a",
2675                        "decorators": [],
2676                        "loc": {
2677                          "start": {
2678                            "line": 62,
2679                            "column": 27
2680                          },
2681                          "end": {
2682                            "line": 62,
2683                            "column": 28
2684                          }
2685                        }
2686                      },
2687                      "typeAnnotation": {
2688                        "type": "TSNumberKeyword",
2689                        "loc": {
2690                          "start": {
2691                            "line": 62,
2692                            "column": 30
2693                          },
2694                          "end": {
2695                            "line": 62,
2696                            "column": 36
2697                          }
2698                        }
2699                      },
2700                      "loc": {
2701                        "start": {
2702                          "line": 62,
2703                          "column": 27
2704                        },
2705                        "end": {
2706                          "line": 62,
2707                          "column": 37
2708                        }
2709                      }
2710                    },
2711                    {
2712                      "type": "TSPropertySignature",
2713                      "computed": false,
2714                      "optional": false,
2715                      "readonly": false,
2716                      "key": {
2717                        "type": "Identifier",
2718                        "name": "b",
2719                        "decorators": [],
2720                        "loc": {
2721                          "start": {
2722                            "line": 62,
2723                            "column": 38
2724                          },
2725                          "end": {
2726                            "line": 62,
2727                            "column": 39
2728                          }
2729                        }
2730                      },
2731                      "typeAnnotation": {
2732                        "type": "TSStringKeyword",
2733                        "loc": {
2734                          "start": {
2735                            "line": 62,
2736                            "column": 41
2737                          },
2738                          "end": {
2739                            "line": 62,
2740                            "column": 47
2741                          }
2742                        }
2743                      },
2744                      "loc": {
2745                        "start": {
2746                          "line": 62,
2747                          "column": 38
2748                        },
2749                        "end": {
2750                          "line": 62,
2751                          "column": 49
2752                        }
2753                      }
2754                    }
2755                  ],
2756                  "loc": {
2757                    "start": {
2758                      "line": 62,
2759                      "column": 25
2760                    },
2761                    "end": {
2762                      "line": 62,
2763                      "column": 49
2764                    }
2765                  }
2766                },
2767                "decorators": [],
2768                "loc": {
2769                  "start": {
2770                    "line": 62,
2771                    "column": 22
2772                  },
2773                  "end": {
2774                    "line": 62,
2775                    "column": 23
2776                  }
2777                }
2778              }
2779            ],
2780            "returnType": {
2781              "type": "TSBooleanKeyword",
2782              "loc": {
2783                "start": {
2784                  "line": 62,
2785                  "column": 52
2786                },
2787                "end": {
2788                  "line": 62,
2789                  "column": 59
2790                }
2791              }
2792            },
2793            "loc": {
2794              "start": {
2795                "line": 62,
2796                "column": 5
2797              },
2798              "end": {
2799                "line": 62,
2800                "column": 60
2801              }
2802            }
2803          },
2804          {
2805            "type": "TSConstructSignatureDeclaration",
2806            "params": [
2807              {
2808                "type": "Identifier",
2809                "name": "a",
2810                "typeAnnotation": {
2811                  "type": "TSArrayType",
2812                  "elementType": {
2813                    "type": "TSNumberKeyword",
2814                    "loc": {
2815                      "start": {
2816                        "line": 63,
2817                        "column": 12
2818                      },
2819                      "end": {
2820                        "line": 63,
2821                        "column": 18
2822                      }
2823                    }
2824                  },
2825                  "loc": {
2826                    "start": {
2827                      "line": 63,
2828                      "column": 12
2829                    },
2830                    "end": {
2831                      "line": 63,
2832                      "column": 20
2833                    }
2834                  }
2835                },
2836                "decorators": [],
2837                "loc": {
2838                  "start": {
2839                    "line": 63,
2840                    "column": 9
2841                  },
2842                  "end": {
2843                    "line": 63,
2844                    "column": 10
2845                  }
2846                }
2847              },
2848              {
2849                "type": "Identifier",
2850                "name": "b",
2851                "typeAnnotation": {
2852                  "type": "TSTypeLiteral",
2853                  "members": [
2854                    {
2855                      "type": "TSPropertySignature",
2856                      "computed": false,
2857                      "optional": false,
2858                      "readonly": false,
2859                      "key": {
2860                        "type": "Identifier",
2861                        "name": "a",
2862                        "decorators": [],
2863                        "loc": {
2864                          "start": {
2865                            "line": 63,
2866                            "column": 27
2867                          },
2868                          "end": {
2869                            "line": 63,
2870                            "column": 28
2871                          }
2872                        }
2873                      },
2874                      "typeAnnotation": {
2875                        "type": "TSNumberKeyword",
2876                        "loc": {
2877                          "start": {
2878                            "line": 63,
2879                            "column": 30
2880                          },
2881                          "end": {
2882                            "line": 63,
2883                            "column": 36
2884                          }
2885                        }
2886                      },
2887                      "loc": {
2888                        "start": {
2889                          "line": 63,
2890                          "column": 27
2891                        },
2892                        "end": {
2893                          "line": 63,
2894                          "column": 37
2895                        }
2896                      }
2897                    },
2898                    {
2899                      "type": "TSPropertySignature",
2900                      "computed": false,
2901                      "optional": false,
2902                      "readonly": false,
2903                      "key": {
2904                        "type": "Identifier",
2905                        "name": "b",
2906                        "decorators": [],
2907                        "loc": {
2908                          "start": {
2909                            "line": 63,
2910                            "column": 38
2911                          },
2912                          "end": {
2913                            "line": 63,
2914                            "column": 39
2915                          }
2916                        }
2917                      },
2918                      "typeAnnotation": {
2919                        "type": "TSStringKeyword",
2920                        "loc": {
2921                          "start": {
2922                            "line": 63,
2923                            "column": 41
2924                          },
2925                          "end": {
2926                            "line": 63,
2927                            "column": 47
2928                          }
2929                        }
2930                      },
2931                      "loc": {
2932                        "start": {
2933                          "line": 63,
2934                          "column": 38
2935                        },
2936                        "end": {
2937                          "line": 63,
2938                          "column": 49
2939                        }
2940                      }
2941                    }
2942                  ],
2943                  "loc": {
2944                    "start": {
2945                      "line": 63,
2946                      "column": 25
2947                    },
2948                    "end": {
2949                      "line": 63,
2950                      "column": 49
2951                    }
2952                  }
2953                },
2954                "decorators": [],
2955                "loc": {
2956                  "start": {
2957                    "line": 63,
2958                    "column": 22
2959                  },
2960                  "end": {
2961                    "line": 63,
2962                    "column": 23
2963                  }
2964                }
2965              }
2966            ],
2967            "returnType": {
2968              "type": "TSVoidKeyword",
2969              "loc": {
2970                "start": {
2971                  "line": 63,
2972                  "column": 52
2973                },
2974                "end": {
2975                  "line": 63,
2976                  "column": 56
2977                }
2978              }
2979            },
2980            "loc": {
2981              "start": {
2982                "line": 63,
2983                "column": 5
2984              },
2985              "end": {
2986                "line": 63,
2987                "column": 57
2988              }
2989            }
2990          }
2991        ],
2992        "loc": {
2993          "start": {
2994            "line": 59,
2995            "column": 22
2996          },
2997          "end": {
2998            "line": 64,
2999            "column": 2
3000          }
3001        }
3002      },
3003      "id": {
3004        "type": "Identifier",
3005        "name": "interface5",
3006        "decorators": [],
3007        "loc": {
3008          "start": {
3009            "line": 59,
3010            "column": 11
3011          },
3012          "end": {
3013            "line": 59,
3014            "column": 21
3015          }
3016        }
3017      },
3018      "extends": [],
3019      "loc": {
3020        "start": {
3021          "line": 59,
3022          "column": 1
3023        },
3024        "end": {
3025          "line": 64,
3026          "column": 2
3027        }
3028      }
3029    },
3030    {
3031      "type": "TSInterfaceDeclaration",
3032      "body": {
3033        "type": "TSInterfaceBody",
3034        "body": [
3035          {
3036            "type": "TSCallSignatureDeclaration",
3037            "params": [
3038              {
3039                "type": "Identifier",
3040                "name": "a",
3041                "typeAnnotation": {
3042                  "type": "TSNumberKeyword",
3043                  "loc": {
3044                    "start": {
3045                      "line": 67,
3046                      "column": 9
3047                    },
3048                    "end": {
3049                      "line": 67,
3050                      "column": 15
3051                    }
3052                  }
3053                },
3054                "decorators": [],
3055                "loc": {
3056                  "start": {
3057                    "line": 67,
3058                    "column": 6
3059                  },
3060                  "end": {
3061                    "line": 67,
3062                    "column": 7
3063                  }
3064                }
3065              },
3066              {
3067                "type": "Identifier",
3068                "name": "b",
3069                "typeAnnotation": {
3070                  "type": "TSStringKeyword",
3071                  "loc": {
3072                    "start": {
3073                      "line": 67,
3074                      "column": 20
3075                    },
3076                    "end": {
3077                      "line": 67,
3078                      "column": 26
3079                    }
3080                  }
3081                },
3082                "decorators": [],
3083                "loc": {
3084                  "start": {
3085                    "line": 67,
3086                    "column": 17
3087                  },
3088                  "end": {
3089                    "line": 67,
3090                    "column": 18
3091                  }
3092                }
3093              }
3094            ],
3095            "returnType": {
3096              "type": "TSNumberKeyword",
3097              "loc": {
3098                "start": {
3099                  "line": 67,
3100                  "column": 29
3101                },
3102                "end": {
3103                  "line": 67,
3104                  "column": 35
3105                }
3106              }
3107            },
3108            "loc": {
3109              "start": {
3110                "line": 67,
3111                "column": 5
3112              },
3113              "end": {
3114                "line": 67,
3115                "column": 36
3116              }
3117            }
3118          },
3119          {
3120            "type": "TSCallSignatureDeclaration",
3121            "params": [
3122              {
3123                "type": "Identifier",
3124                "name": "a",
3125                "typeAnnotation": {
3126                  "type": "TSNumberKeyword",
3127                  "loc": {
3128                    "start": {
3129                      "line": 68,
3130                      "column": 9
3131                    },
3132                    "end": {
3133                      "line": 68,
3134                      "column": 15
3135                    }
3136                  }
3137                },
3138                "decorators": [],
3139                "loc": {
3140                  "start": {
3141                    "line": 68,
3142                    "column": 6
3143                  },
3144                  "end": {
3145                    "line": 68,
3146                    "column": 7
3147                  }
3148                }
3149              },
3150              {
3151                "type": "Identifier",
3152                "name": "b",
3153                "typeAnnotation": {
3154                  "type": "TSStringKeyword",
3155                  "loc": {
3156                    "start": {
3157                      "line": 68,
3158                      "column": 20
3159                    },
3160                    "end": {
3161                      "line": 68,
3162                      "column": 26
3163                    }
3164                  }
3165                },
3166                "decorators": [],
3167                "loc": {
3168                  "start": {
3169                    "line": 68,
3170                    "column": 17
3171                  },
3172                  "end": {
3173                    "line": 68,
3174                    "column": 18
3175                  }
3176                }
3177              }
3178            ],
3179            "returnType": {
3180              "type": "TSStringKeyword",
3181              "loc": {
3182                "start": {
3183                  "line": 68,
3184                  "column": 29
3185                },
3186                "end": {
3187                  "line": 68,
3188                  "column": 35
3189                }
3190              }
3191            },
3192            "loc": {
3193              "start": {
3194                "line": 68,
3195                "column": 5
3196              },
3197              "end": {
3198                "line": 68,
3199                "column": 36
3200              }
3201            }
3202          },
3203          {
3204            "type": "TSConstructSignatureDeclaration",
3205            "params": [
3206              {
3207                "type": "Identifier",
3208                "name": "a",
3209                "typeAnnotation": {
3210                  "type": "TSArrayType",
3211                  "elementType": {
3212                    "type": "TSNumberKeyword",
3213                    "loc": {
3214                      "start": {
3215                        "line": 69,
3216                        "column": 12
3217                      },
3218                      "end": {
3219                        "line": 69,
3220                        "column": 18
3221                      }
3222                    }
3223                  },
3224                  "loc": {
3225                    "start": {
3226                      "line": 69,
3227                      "column": 12
3228                    },
3229                    "end": {
3230                      "line": 69,
3231                      "column": 20
3232                    }
3233                  }
3234                },
3235                "decorators": [],
3236                "loc": {
3237                  "start": {
3238                    "line": 69,
3239                    "column": 9
3240                  },
3241                  "end": {
3242                    "line": 69,
3243                    "column": 10
3244                  }
3245                }
3246              },
3247              {
3248                "type": "Identifier",
3249                "name": "b",
3250                "typeAnnotation": {
3251                  "type": "TSTypeLiteral",
3252                  "members": [
3253                    {
3254                      "type": "TSPropertySignature",
3255                      "computed": false,
3256                      "optional": false,
3257                      "readonly": false,
3258                      "key": {
3259                        "type": "Identifier",
3260                        "name": "a",
3261                        "decorators": [],
3262                        "loc": {
3263                          "start": {
3264                            "line": 69,
3265                            "column": 27
3266                          },
3267                          "end": {
3268                            "line": 69,
3269                            "column": 28
3270                          }
3271                        }
3272                      },
3273                      "typeAnnotation": {
3274                        "type": "TSNumberKeyword",
3275                        "loc": {
3276                          "start": {
3277                            "line": 69,
3278                            "column": 30
3279                          },
3280                          "end": {
3281                            "line": 69,
3282                            "column": 36
3283                          }
3284                        }
3285                      },
3286                      "loc": {
3287                        "start": {
3288                          "line": 69,
3289                          "column": 27
3290                        },
3291                        "end": {
3292                          "line": 69,
3293                          "column": 37
3294                        }
3295                      }
3296                    },
3297                    {
3298                      "type": "TSPropertySignature",
3299                      "computed": false,
3300                      "optional": false,
3301                      "readonly": false,
3302                      "key": {
3303                        "type": "Identifier",
3304                        "name": "b",
3305                        "decorators": [],
3306                        "loc": {
3307                          "start": {
3308                            "line": 69,
3309                            "column": 38
3310                          },
3311                          "end": {
3312                            "line": 69,
3313                            "column": 39
3314                          }
3315                        }
3316                      },
3317                      "typeAnnotation": {
3318                        "type": "TSStringKeyword",
3319                        "loc": {
3320                          "start": {
3321                            "line": 69,
3322                            "column": 41
3323                          },
3324                          "end": {
3325                            "line": 69,
3326                            "column": 47
3327                          }
3328                        }
3329                      },
3330                      "loc": {
3331                        "start": {
3332                          "line": 69,
3333                          "column": 38
3334                        },
3335                        "end": {
3336                          "line": 69,
3337                          "column": 49
3338                        }
3339                      }
3340                    }
3341                  ],
3342                  "loc": {
3343                    "start": {
3344                      "line": 69,
3345                      "column": 25
3346                    },
3347                    "end": {
3348                      "line": 69,
3349                      "column": 49
3350                    }
3351                  }
3352                },
3353                "decorators": [],
3354                "loc": {
3355                  "start": {
3356                    "line": 69,
3357                    "column": 22
3358                  },
3359                  "end": {
3360                    "line": 69,
3361                    "column": 23
3362                  }
3363                }
3364              }
3365            ],
3366            "returnType": {
3367              "type": "TSVoidKeyword",
3368              "loc": {
3369                "start": {
3370                  "line": 69,
3371                  "column": 52
3372                },
3373                "end": {
3374                  "line": 69,
3375                  "column": 56
3376                }
3377              }
3378            },
3379            "loc": {
3380              "start": {
3381                "line": 69,
3382                "column": 5
3383              },
3384              "end": {
3385                "line": 69,
3386                "column": 57
3387              }
3388            }
3389          },
3390          {
3391            "type": "TSConstructSignatureDeclaration",
3392            "params": [
3393              {
3394                "type": "Identifier",
3395                "name": "a",
3396                "typeAnnotation": {
3397                  "type": "TSArrayType",
3398                  "elementType": {
3399                    "type": "TSNumberKeyword",
3400                    "loc": {
3401                      "start": {
3402                        "line": 70,
3403                        "column": 12
3404                      },
3405                      "end": {
3406                        "line": 70,
3407                        "column": 18
3408                      }
3409                    }
3410                  },
3411                  "loc": {
3412                    "start": {
3413                      "line": 70,
3414                      "column": 12
3415                    },
3416                    "end": {
3417                      "line": 70,
3418                      "column": 20
3419                    }
3420                  }
3421                },
3422                "decorators": [],
3423                "loc": {
3424                  "start": {
3425                    "line": 70,
3426                    "column": 9
3427                  },
3428                  "end": {
3429                    "line": 70,
3430                    "column": 10
3431                  }
3432                }
3433              },
3434              {
3435                "type": "Identifier",
3436                "name": "b",
3437                "typeAnnotation": {
3438                  "type": "TSTypeLiteral",
3439                  "members": [
3440                    {
3441                      "type": "TSPropertySignature",
3442                      "computed": false,
3443                      "optional": false,
3444                      "readonly": false,
3445                      "key": {
3446                        "type": "Identifier",
3447                        "name": "a",
3448                        "decorators": [],
3449                        "loc": {
3450                          "start": {
3451                            "line": 70,
3452                            "column": 27
3453                          },
3454                          "end": {
3455                            "line": 70,
3456                            "column": 28
3457                          }
3458                        }
3459                      },
3460                      "typeAnnotation": {
3461                        "type": "TSNumberKeyword",
3462                        "loc": {
3463                          "start": {
3464                            "line": 70,
3465                            "column": 30
3466                          },
3467                          "end": {
3468                            "line": 70,
3469                            "column": 36
3470                          }
3471                        }
3472                      },
3473                      "loc": {
3474                        "start": {
3475                          "line": 70,
3476                          "column": 27
3477                        },
3478                        "end": {
3479                          "line": 70,
3480                          "column": 37
3481                        }
3482                      }
3483                    },
3484                    {
3485                      "type": "TSPropertySignature",
3486                      "computed": false,
3487                      "optional": false,
3488                      "readonly": false,
3489                      "key": {
3490                        "type": "Identifier",
3491                        "name": "b",
3492                        "decorators": [],
3493                        "loc": {
3494                          "start": {
3495                            "line": 70,
3496                            "column": 38
3497                          },
3498                          "end": {
3499                            "line": 70,
3500                            "column": 39
3501                          }
3502                        }
3503                      },
3504                      "typeAnnotation": {
3505                        "type": "TSStringKeyword",
3506                        "loc": {
3507                          "start": {
3508                            "line": 70,
3509                            "column": 41
3510                          },
3511                          "end": {
3512                            "line": 70,
3513                            "column": 47
3514                          }
3515                        }
3516                      },
3517                      "loc": {
3518                        "start": {
3519                          "line": 70,
3520                          "column": 38
3521                        },
3522                        "end": {
3523                          "line": 70,
3524                          "column": 49
3525                        }
3526                      }
3527                    }
3528                  ],
3529                  "loc": {
3530                    "start": {
3531                      "line": 70,
3532                      "column": 25
3533                    },
3534                    "end": {
3535                      "line": 70,
3536                      "column": 49
3537                    }
3538                  }
3539                },
3540                "decorators": [],
3541                "loc": {
3542                  "start": {
3543                    "line": 70,
3544                    "column": 22
3545                  },
3546                  "end": {
3547                    "line": 70,
3548                    "column": 23
3549                  }
3550                }
3551              }
3552            ],
3553            "returnType": {
3554              "type": "TSBooleanKeyword",
3555              "loc": {
3556                "start": {
3557                  "line": 70,
3558                  "column": 52
3559                },
3560                "end": {
3561                  "line": 70,
3562                  "column": 59
3563                }
3564              }
3565            },
3566            "loc": {
3567              "start": {
3568                "line": 70,
3569                "column": 5
3570              },
3571              "end": {
3572                "line": 70,
3573                "column": 60
3574              }
3575            }
3576          }
3577        ],
3578        "loc": {
3579          "start": {
3580            "line": 66,
3581            "column": 22
3582          },
3583          "end": {
3584            "line": 71,
3585            "column": 2
3586          }
3587        }
3588      },
3589      "id": {
3590        "type": "Identifier",
3591        "name": "interface6",
3592        "decorators": [],
3593        "loc": {
3594          "start": {
3595            "line": 66,
3596            "column": 11
3597          },
3598          "end": {
3599            "line": 66,
3600            "column": 21
3601          }
3602        }
3603      },
3604      "extends": [],
3605      "loc": {
3606        "start": {
3607          "line": 66,
3608          "column": 1
3609        },
3610        "end": {
3611          "line": 71,
3612          "column": 2
3613        }
3614      }
3615    },
3616    {
3617      "type": "VariableDeclaration",
3618      "declarations": [
3619        {
3620          "type": "VariableDeclarator",
3621          "id": {
3622            "type": "Identifier",
3623            "name": "i",
3624            "typeAnnotation": {
3625              "type": "TSTypeReference",
3626              "typeName": {
3627                "type": "Identifier",
3628                "name": "interface5",
3629                "decorators": [],
3630                "loc": {
3631                  "start": {
3632                    "line": 73,
3633                    "column": 8
3634                  },
3635                  "end": {
3636                    "line": 73,
3637                    "column": 18
3638                  }
3639                }
3640              },
3641              "loc": {
3642                "start": {
3643                  "line": 73,
3644                  "column": 8
3645                },
3646                "end": {
3647                  "line": 73,
3648                  "column": 18
3649                }
3650              }
3651            },
3652            "decorators": [],
3653            "loc": {
3654              "start": {
3655                "line": 73,
3656                "column": 5
3657              },
3658              "end": {
3659                "line": 73,
3660                "column": 6
3661              }
3662            }
3663          },
3664          "init": null,
3665          "loc": {
3666            "start": {
3667              "line": 73,
3668              "column": 5
3669            },
3670            "end": {
3671              "line": 73,
3672              "column": 6
3673            }
3674          }
3675        }
3676      ],
3677      "kind": "var",
3678      "loc": {
3679        "start": {
3680          "line": 73,
3681          "column": 1
3682        },
3683        "end": {
3684          "line": 73,
3685          "column": 19
3686        }
3687      }
3688    },
3689    {
3690      "type": "VariableDeclaration",
3691      "declarations": [
3692        {
3693          "type": "VariableDeclarator",
3694          "id": {
3695            "type": "Identifier",
3696            "name": "i",
3697            "typeAnnotation": {
3698              "type": "TSTypeReference",
3699              "typeName": {
3700                "type": "Identifier",
3701                "name": "interface6",
3702                "decorators": [],
3703                "loc": {
3704                  "start": {
3705                    "line": 74,
3706                    "column": 8
3707                  },
3708                  "end": {
3709                    "line": 74,
3710                    "column": 18
3711                  }
3712                }
3713              },
3714              "loc": {
3715                "start": {
3716                  "line": 74,
3717                  "column": 8
3718                },
3719                "end": {
3720                  "line": 74,
3721                  "column": 18
3722                }
3723              }
3724            },
3725            "decorators": [],
3726            "loc": {
3727              "start": {
3728                "line": 74,
3729                "column": 5
3730              },
3731              "end": {
3732                "line": 74,
3733                "column": 6
3734              }
3735            }
3736          },
3737          "init": null,
3738          "loc": {
3739            "start": {
3740              "line": 74,
3741              "column": 5
3742            },
3743            "end": {
3744              "line": 74,
3745              "column": 6
3746            }
3747          }
3748        }
3749      ],
3750      "kind": "var",
3751      "loc": {
3752        "start": {
3753          "line": 74,
3754          "column": 1
3755        },
3756        "end": {
3757          "line": 74,
3758          "column": 19
3759        }
3760      }
3761    },
3762    {
3763      "type": "VariableDeclaration",
3764      "declarations": [
3765        {
3766          "type": "VariableDeclarator",
3767          "id": {
3768            "type": "Identifier",
3769            "name": "j",
3770            "decorators": [],
3771            "loc": {
3772              "start": {
3773                "line": 76,
3774                "column": 5
3775              },
3776              "end": {
3777                "line": 76,
3778                "column": 6
3779              }
3780            }
3781          },
3782          "init": {
3783            "type": "FunctionExpression",
3784            "function": {
3785              "type": "ScriptFunction",
3786              "id": null,
3787              "generator": false,
3788              "async": false,
3789              "expression": false,
3790              "params": [
3791                {
3792                  "type": "Identifier",
3793                  "name": "a",
3794                  "typeAnnotation": {
3795                    "type": "TSTypeReference",
3796                    "typeName": {
3797                      "type": "Identifier",
3798                      "name": "interface6",
3799                      "decorators": [],
3800                      "loc": {
3801                        "start": {
3802                          "line": 76,
3803                          "column": 22
3804                        },
3805                        "end": {
3806                          "line": 76,
3807                          "column": 32
3808                        }
3809                      }
3810                    },
3811                    "loc": {
3812                      "start": {
3813                        "line": 76,
3814                        "column": 22
3815                      },
3816                      "end": {
3817                        "line": 76,
3818                        "column": 32
3819                      }
3820                    }
3821                  },
3822                  "decorators": [],
3823                  "loc": {
3824                    "start": {
3825                      "line": 76,
3826                      "column": 19
3827                    },
3828                    "end": {
3829                      "line": 76,
3830                      "column": 20
3831                    }
3832                  }
3833                },
3834                {
3835                  "type": "Identifier",
3836                  "name": "b",
3837                  "typeAnnotation": {
3838                    "type": "TSArrayType",
3839                    "elementType": {
3840                      "type": "TSNumberKeyword",
3841                      "loc": {
3842                        "start": {
3843                          "line": 76,
3844                          "column": 37
3845                        },
3846                        "end": {
3847                          "line": 76,
3848                          "column": 43
3849                        }
3850                      }
3851                    },
3852                    "loc": {
3853                      "start": {
3854                        "line": 76,
3855                        "column": 37
3856                      },
3857                      "end": {
3858                        "line": 76,
3859                        "column": 45
3860                      }
3861                    }
3862                  },
3863                  "decorators": [],
3864                  "loc": {
3865                    "start": {
3866                      "line": 76,
3867                      "column": 34
3868                    },
3869                    "end": {
3870                      "line": 76,
3871                      "column": 35
3872                    }
3873                  }
3874                }
3875              ],
3876              "returnType": {
3877                "type": "TSNumberKeyword",
3878                "loc": {
3879                  "start": {
3880                    "line": 76,
3881                    "column": 48
3882                  },
3883                  "end": {
3884                    "line": 76,
3885                    "column": 54
3886                  }
3887                }
3888              },
3889              "body": {
3890                "type": "BlockStatement",
3891                "statements": [
3892                  {
3893                    "type": "ReturnStatement",
3894                    "argument": {
3895                      "type": "NumberLiteral",
3896                      "value": 123,
3897                      "loc": {
3898                        "start": {
3899                          "line": 77,
3900                          "column": 12
3901                        },
3902                        "end": {
3903                          "line": 77,
3904                          "column": 15
3905                        }
3906                      }
3907                    },
3908                    "loc": {
3909                      "start": {
3910                        "line": 77,
3911                        "column": 5
3912                      },
3913                      "end": {
3914                        "line": 77,
3915                        "column": 16
3916                      }
3917                    }
3918                  }
3919                ],
3920                "loc": {
3921                  "start": {
3922                    "line": 76,
3923                    "column": 55
3924                  },
3925                  "end": {
3926                    "line": 78,
3927                    "column": 2
3928                  }
3929                }
3930              },
3931              "loc": {
3932                "start": {
3933                  "line": 76,
3934                  "column": 9
3935                },
3936                "end": {
3937                  "line": 78,
3938                  "column": 2
3939                }
3940              }
3941            },
3942            "loc": {
3943              "start": {
3944                "line": 76,
3945                "column": 9
3946              },
3947              "end": {
3948                "line": 78,
3949                "column": 2
3950              }
3951            }
3952          },
3953          "loc": {
3954            "start": {
3955              "line": 76,
3956              "column": 5
3957            },
3958            "end": {
3959              "line": 78,
3960              "column": 2
3961            }
3962          }
3963        }
3964      ],
3965      "kind": "var",
3966      "loc": {
3967        "start": {
3968          "line": 76,
3969          "column": 1
3970        },
3971        "end": {
3972          "line": 78,
3973          "column": 2
3974        }
3975      }
3976    },
3977    {
3978      "type": "VariableDeclaration",
3979      "declarations": [
3980        {
3981          "type": "VariableDeclarator",
3982          "id": {
3983            "type": "Identifier",
3984            "name": "j",
3985            "typeAnnotation": {
3986              "type": "TSFunctionType",
3987              "params": [
3988                {
3989                  "type": "Identifier",
3990                  "name": "a",
3991                  "typeAnnotation": {
3992                    "type": "TSTypeReference",
3993                    "typeName": {
3994                      "type": "Identifier",
3995                      "name": "interface6",
3996                      "decorators": [],
3997                      "loc": {
3998                        "start": {
3999                          "line": 79,
4000                          "column": 12
4001                        },
4002                        "end": {
4003                          "line": 79,
4004                          "column": 22
4005                        }
4006                      }
4007                    },
4008                    "loc": {
4009                      "start": {
4010                        "line": 79,
4011                        "column": 12
4012                      },
4013                      "end": {
4014                        "line": 79,
4015                        "column": 22
4016                      }
4017                    }
4018                  },
4019                  "decorators": [],
4020                  "loc": {
4021                    "start": {
4022                      "line": 79,
4023                      "column": 9
4024                    },
4025                    "end": {
4026                      "line": 79,
4027                      "column": 10
4028                    }
4029                  }
4030                },
4031                {
4032                  "type": "Identifier",
4033                  "name": "b",
4034                  "typeAnnotation": {
4035                    "type": "TSArrayType",
4036                    "elementType": {
4037                      "type": "TSNumberKeyword",
4038                      "loc": {
4039                        "start": {
4040                          "line": 79,
4041                          "column": 27
4042                        },
4043                        "end": {
4044                          "line": 79,
4045                          "column": 33
4046                        }
4047                      }
4048                    },
4049                    "loc": {
4050                      "start": {
4051                        "line": 79,
4052                        "column": 27
4053                      },
4054                      "end": {
4055                        "line": 79,
4056                        "column": 35
4057                      }
4058                    }
4059                  },
4060                  "decorators": [],
4061                  "loc": {
4062                    "start": {
4063                      "line": 79,
4064                      "column": 24
4065                    },
4066                    "end": {
4067                      "line": 79,
4068                      "column": 25
4069                    }
4070                  }
4071                }
4072              ],
4073              "returnType": {
4074                "type": "TSNumberKeyword",
4075                "loc": {
4076                  "start": {
4077                    "line": 79,
4078                    "column": 40
4079                  },
4080                  "end": {
4081                    "line": 79,
4082                    "column": 46
4083                  }
4084                }
4085              },
4086              "loc": {
4087                "start": {
4088                  "line": 79,
4089                  "column": 8
4090                },
4091                "end": {
4092                  "line": 79,
4093                  "column": 46
4094                }
4095              }
4096            },
4097            "decorators": [],
4098            "loc": {
4099              "start": {
4100                "line": 79,
4101                "column": 5
4102              },
4103              "end": {
4104                "line": 79,
4105                "column": 6
4106              }
4107            }
4108          },
4109          "init": null,
4110          "loc": {
4111            "start": {
4112              "line": 79,
4113              "column": 5
4114            },
4115            "end": {
4116              "line": 79,
4117              "column": 6
4118            }
4119          }
4120        }
4121      ],
4122      "kind": "var",
4123      "loc": {
4124        "start": {
4125          "line": 79,
4126          "column": 1
4127        },
4128        "end": {
4129          "line": 79,
4130          "column": 47
4131        }
4132      }
4133    },
4134    {
4135      "type": "VariableDeclaration",
4136      "declarations": [
4137        {
4138          "type": "VariableDeclarator",
4139          "id": {
4140            "type": "Identifier",
4141            "name": "obj",
4142            "decorators": [],
4143            "loc": {
4144              "start": {
4145                "line": 81,
4146                "column": 5
4147              },
4148              "end": {
4149                "line": 81,
4150                "column": 8
4151              }
4152            }
4153          },
4154          "init": {
4155            "type": "ObjectExpression",
4156            "properties": [
4157              {
4158                "type": "Property",
4159                "method": false,
4160                "shorthand": false,
4161                "computed": false,
4162                "key": {
4163                  "type": "Identifier",
4164                  "name": "a",
4165                  "decorators": [],
4166                  "loc": {
4167                    "start": {
4168                      "line": 81,
4169                      "column": 13
4170                    },
4171                    "end": {
4172                      "line": 81,
4173                      "column": 14
4174                    }
4175                  }
4176                },
4177                "value": {
4178                  "type": "NumberLiteral",
4179                  "value": 1,
4180                  "loc": {
4181                    "start": {
4182                      "line": 81,
4183                      "column": 16
4184                    },
4185                    "end": {
4186                      "line": 81,
4187                      "column": 17
4188                    }
4189                  }
4190                },
4191                "kind": "init",
4192                "loc": {
4193                  "start": {
4194                    "line": 81,
4195                    "column": 13
4196                  },
4197                  "end": {
4198                    "line": 81,
4199                    "column": 17
4200                  }
4201                }
4202              },
4203              {
4204                "type": "Property",
4205                "method": false,
4206                "shorthand": false,
4207                "computed": false,
4208                "key": {
4209                  "type": "Identifier",
4210                  "name": "b",
4211                  "decorators": [],
4212                  "loc": {
4213                    "start": {
4214                      "line": 81,
4215                      "column": 19
4216                    },
4217                    "end": {
4218                      "line": 81,
4219                      "column": 20
4220                    }
4221                  }
4222                },
4223                "value": {
4224                  "type": "NumberLiteral",
4225                  "value": 2,
4226                  "loc": {
4227                    "start": {
4228                      "line": 81,
4229                      "column": 22
4230                    },
4231                    "end": {
4232                      "line": 81,
4233                      "column": 23
4234                    }
4235                  }
4236                },
4237                "kind": "init",
4238                "loc": {
4239                  "start": {
4240                    "line": 81,
4241                    "column": 19
4242                  },
4243                  "end": {
4244                    "line": 81,
4245                    "column": 23
4246                  }
4247                }
4248              },
4249              {
4250                "type": "Property",
4251                "method": false,
4252                "shorthand": false,
4253                "computed": false,
4254                "key": {
4255                  "type": "Identifier",
4256                  "name": "c",
4257                  "decorators": [],
4258                  "loc": {
4259                    "start": {
4260                      "line": 81,
4261                      "column": 25
4262                    },
4263                    "end": {
4264                      "line": 81,
4265                      "column": 26
4266                    }
4267                  }
4268                },
4269                "value": {
4270                  "type": "NumberLiteral",
4271                  "value": 3,
4272                  "loc": {
4273                    "start": {
4274                      "line": 81,
4275                      "column": 28
4276                    },
4277                    "end": {
4278                      "line": 81,
4279                      "column": 29
4280                    }
4281                  }
4282                },
4283                "kind": "init",
4284                "loc": {
4285                  "start": {
4286                    "line": 81,
4287                    "column": 25
4288                  },
4289                  "end": {
4290                    "line": 81,
4291                    "column": 29
4292                  }
4293                }
4294              }
4295            ],
4296            "loc": {
4297              "start": {
4298                "line": 81,
4299                "column": 11
4300              },
4301              "end": {
4302                "line": 81,
4303                "column": 31
4304              }
4305            }
4306          },
4307          "loc": {
4308            "start": {
4309              "line": 81,
4310              "column": 5
4311            },
4312            "end": {
4313              "line": 81,
4314              "column": 31
4315            }
4316          }
4317        }
4318      ],
4319      "kind": "var",
4320      "loc": {
4321        "start": {
4322          "line": 81,
4323          "column": 1
4324        },
4325        "end": {
4326          "line": 81,
4327          "column": 32
4328        }
4329      }
4330    },
4331    {
4332      "type": "VariableDeclaration",
4333      "declarations": [
4334        {
4335          "type": "VariableDeclarator",
4336          "id": {
4337            "type": "Identifier",
4338            "name": "k",
4339            "decorators": [],
4340            "loc": {
4341              "start": {
4342                "line": 82,
4343                "column": 5
4344              },
4345              "end": {
4346                "line": 82,
4347                "column": 6
4348              }
4349            }
4350          },
4351          "init": {
4352            "type": "ObjectExpression",
4353            "properties": [
4354              {
4355                "type": "Property",
4356                "method": false,
4357                "shorthand": false,
4358                "computed": false,
4359                "key": {
4360                  "type": "Identifier",
4361                  "name": "d",
4362                  "decorators": [],
4363                  "loc": {
4364                    "start": {
4365                      "line": 82,
4366                      "column": 11
4367                    },
4368                    "end": {
4369                      "line": 82,
4370                      "column": 12
4371                    }
4372                  }
4373                },
4374                "value": {
4375                  "type": "StringLiteral",
4376                  "value": "foo",
4377                  "loc": {
4378                    "start": {
4379                      "line": 82,
4380                      "column": 14
4381                    },
4382                    "end": {
4383                      "line": 82,
4384                      "column": 19
4385                    }
4386                  }
4387                },
4388                "kind": "init",
4389                "loc": {
4390                  "start": {
4391                    "line": 82,
4392                    "column": 11
4393                  },
4394                  "end": {
4395                    "line": 82,
4396                    "column": 19
4397                  }
4398                }
4399              },
4400              {
4401                "type": "Property",
4402                "method": false,
4403                "shorthand": false,
4404                "computed": false,
4405                "key": {
4406                  "type": "Identifier",
4407                  "name": "e",
4408                  "decorators": [],
4409                  "loc": {
4410                    "start": {
4411                      "line": 82,
4412                      "column": 21
4413                    },
4414                    "end": {
4415                      "line": 82,
4416                      "column": 22
4417                    }
4418                  }
4419                },
4420                "value": {
4421                  "type": "StringLiteral",
4422                  "value": "bar",
4423                  "loc": {
4424                    "start": {
4425                      "line": 82,
4426                      "column": 24
4427                    },
4428                    "end": {
4429                      "line": 82,
4430                      "column": 29
4431                    }
4432                  }
4433                },
4434                "kind": "init",
4435                "loc": {
4436                  "start": {
4437                    "line": 82,
4438                    "column": 21
4439                  },
4440                  "end": {
4441                    "line": 82,
4442                    "column": 29
4443                  }
4444                }
4445              },
4446              {
4447                "type": "SpreadElement",
4448                "argument": {
4449                  "type": "Identifier",
4450                  "name": "obj",
4451                  "decorators": [],
4452                  "loc": {
4453                    "start": {
4454                      "line": 82,
4455                      "column": 34
4456                    },
4457                    "end": {
4458                      "line": 82,
4459                      "column": 37
4460                    }
4461                  }
4462                },
4463                "loc": {
4464                  "start": {
4465                    "line": 82,
4466                    "column": 31
4467                  },
4468                  "end": {
4469                    "line": 82,
4470                    "column": 37
4471                  }
4472                }
4473              }
4474            ],
4475            "loc": {
4476              "start": {
4477                "line": 82,
4478                "column": 9
4479              },
4480              "end": {
4481                "line": 82,
4482                "column": 39
4483              }
4484            }
4485          },
4486          "loc": {
4487            "start": {
4488              "line": 82,
4489              "column": 5
4490            },
4491            "end": {
4492              "line": 82,
4493              "column": 39
4494            }
4495          }
4496        }
4497      ],
4498      "kind": "var",
4499      "loc": {
4500        "start": {
4501          "line": 82,
4502          "column": 1
4503        },
4504        "end": {
4505          "line": 82,
4506          "column": 40
4507        }
4508      }
4509    },
4510    {
4511      "type": "VariableDeclaration",
4512      "declarations": [
4513        {
4514          "type": "VariableDeclarator",
4515          "id": {
4516            "type": "Identifier",
4517            "name": "k",
4518            "typeAnnotation": {
4519              "type": "TSTypeLiteral",
4520              "members": [
4521                {
4522                  "type": "TSPropertySignature",
4523                  "computed": false,
4524                  "optional": false,
4525                  "readonly": false,
4526                  "key": {
4527                    "type": "Identifier",
4528                    "name": "a",
4529                    "decorators": [],
4530                    "loc": {
4531                      "start": {
4532                        "line": 83,
4533                        "column": 10
4534                      },
4535                      "end": {
4536                        "line": 83,
4537                        "column": 11
4538                      }
4539                    }
4540                  },
4541                  "typeAnnotation": {
4542                    "type": "TSNumberKeyword",
4543                    "loc": {
4544                      "start": {
4545                        "line": 83,
4546                        "column": 13
4547                      },
4548                      "end": {
4549                        "line": 83,
4550                        "column": 19
4551                      }
4552                    }
4553                  },
4554                  "loc": {
4555                    "start": {
4556                      "line": 83,
4557                      "column": 10
4558                    },
4559                    "end": {
4560                      "line": 83,
4561                      "column": 20
4562                    }
4563                  }
4564                },
4565                {
4566                  "type": "TSPropertySignature",
4567                  "computed": false,
4568                  "optional": false,
4569                  "readonly": false,
4570                  "key": {
4571                    "type": "Identifier",
4572                    "name": "b",
4573                    "decorators": [],
4574                    "loc": {
4575                      "start": {
4576                        "line": 83,
4577                        "column": 21
4578                      },
4579                      "end": {
4580                        "line": 83,
4581                        "column": 22
4582                      }
4583                    }
4584                  },
4585                  "typeAnnotation": {
4586                    "type": "TSNumberKeyword",
4587                    "loc": {
4588                      "start": {
4589                        "line": 83,
4590                        "column": 24
4591                      },
4592                      "end": {
4593                        "line": 83,
4594                        "column": 30
4595                      }
4596                    }
4597                  },
4598                  "loc": {
4599                    "start": {
4600                      "line": 83,
4601                      "column": 21
4602                    },
4603                    "end": {
4604                      "line": 83,
4605                      "column": 31
4606                    }
4607                  }
4608                },
4609                {
4610                  "type": "TSPropertySignature",
4611                  "computed": false,
4612                  "optional": false,
4613                  "readonly": false,
4614                  "key": {
4615                    "type": "Identifier",
4616                    "name": "c",
4617                    "decorators": [],
4618                    "loc": {
4619                      "start": {
4620                        "line": 83,
4621                        "column": 32
4622                      },
4623                      "end": {
4624                        "line": 83,
4625                        "column": 33
4626                      }
4627                    }
4628                  },
4629                  "typeAnnotation": {
4630                    "type": "TSNumberKeyword",
4631                    "loc": {
4632                      "start": {
4633                        "line": 83,
4634                        "column": 35
4635                      },
4636                      "end": {
4637                        "line": 83,
4638                        "column": 41
4639                      }
4640                    }
4641                  },
4642                  "loc": {
4643                    "start": {
4644                      "line": 83,
4645                      "column": 32
4646                    },
4647                    "end": {
4648                      "line": 83,
4649                      "column": 42
4650                    }
4651                  }
4652                },
4653                {
4654                  "type": "TSPropertySignature",
4655                  "computed": false,
4656                  "optional": false,
4657                  "readonly": false,
4658                  "key": {
4659                    "type": "Identifier",
4660                    "name": "d",
4661                    "decorators": [],
4662                    "loc": {
4663                      "start": {
4664                        "line": 83,
4665                        "column": 43
4666                      },
4667                      "end": {
4668                        "line": 83,
4669                        "column": 44
4670                      }
4671                    }
4672                  },
4673                  "typeAnnotation": {
4674                    "type": "TSStringKeyword",
4675                    "loc": {
4676                      "start": {
4677                        "line": 83,
4678                        "column": 46
4679                      },
4680                      "end": {
4681                        "line": 83,
4682                        "column": 52
4683                      }
4684                    }
4685                  },
4686                  "loc": {
4687                    "start": {
4688                      "line": 83,
4689                      "column": 43
4690                    },
4691                    "end": {
4692                      "line": 83,
4693                      "column": 53
4694                    }
4695                  }
4696                },
4697                {
4698                  "type": "TSPropertySignature",
4699                  "computed": false,
4700                  "optional": false,
4701                  "readonly": false,
4702                  "key": {
4703                    "type": "Identifier",
4704                    "name": "e",
4705                    "decorators": [],
4706                    "loc": {
4707                      "start": {
4708                        "line": 83,
4709                        "column": 54
4710                      },
4711                      "end": {
4712                        "line": 83,
4713                        "column": 55
4714                      }
4715                    }
4716                  },
4717                  "typeAnnotation": {
4718                    "type": "TSStringKeyword",
4719                    "loc": {
4720                      "start": {
4721                        "line": 83,
4722                        "column": 57
4723                      },
4724                      "end": {
4725                        "line": 83,
4726                        "column": 63
4727                      }
4728                    }
4729                  },
4730                  "loc": {
4731                    "start": {
4732                      "line": 83,
4733                      "column": 54
4734                    },
4735                    "end": {
4736                      "line": 83,
4737                      "column": 65
4738                    }
4739                  }
4740                }
4741              ],
4742              "loc": {
4743                "start": {
4744                  "line": 83,
4745                  "column": 8
4746                },
4747                "end": {
4748                  "line": 83,
4749                  "column": 65
4750                }
4751              }
4752            },
4753            "decorators": [],
4754            "loc": {
4755              "start": {
4756                "line": 83,
4757                "column": 5
4758              },
4759              "end": {
4760                "line": 83,
4761                "column": 6
4762              }
4763            }
4764          },
4765          "init": null,
4766          "loc": {
4767            "start": {
4768              "line": 83,
4769              "column": 5
4770            },
4771            "end": {
4772              "line": 83,
4773              "column": 6
4774            }
4775          }
4776        }
4777      ],
4778      "kind": "var",
4779      "loc": {
4780        "start": {
4781          "line": 83,
4782          "column": 1
4783        },
4784        "end": {
4785          "line": 83,
4786          "column": 66
4787        }
4788      }
4789    },
4790    {
4791      "type": "FunctionDeclaration",
4792      "function": {
4793        "type": "ScriptFunction",
4794        "id": {
4795          "type": "Identifier",
4796          "name": "func1",
4797          "decorators": [],
4798          "loc": {
4799            "start": {
4800              "line": 85,
4801              "column": 10
4802            },
4803            "end": {
4804              "line": 85,
4805              "column": 15
4806            }
4807          }
4808        },
4809        "generator": false,
4810        "async": false,
4811        "expression": false,
4812        "params": [
4813          {
4814            "type": "Identifier",
4815            "name": "a",
4816            "typeAnnotation": {
4817              "type": "TSNumberKeyword",
4818              "loc": {
4819                "start": {
4820                  "line": 85,
4821                  "column": 19
4822                },
4823                "end": {
4824                  "line": 85,
4825                  "column": 25
4826                }
4827              }
4828            },
4829            "decorators": [],
4830            "loc": {
4831              "start": {
4832                "line": 85,
4833                "column": 16
4834              },
4835              "end": {
4836                "line": 85,
4837                "column": 17
4838              }
4839            }
4840          },
4841          {
4842            "type": "Identifier",
4843            "name": "b",
4844            "typeAnnotation": {
4845              "type": "TSStringKeyword",
4846              "loc": {
4847                "start": {
4848                  "line": 85,
4849                  "column": 30
4850                },
4851                "end": {
4852                  "line": 85,
4853                  "column": 36
4854                }
4855              }
4856            },
4857            "decorators": [],
4858            "loc": {
4859              "start": {
4860                "line": 85,
4861                "column": 27
4862              },
4863              "end": {
4864                "line": 85,
4865                "column": 28
4866              }
4867            }
4868          }
4869        ],
4870        "returnType": {
4871          "type": "TSLiteralType",
4872          "literal": {
4873            "type": "StringLiteral",
4874            "value": "foo",
4875            "loc": {
4876              "start": {
4877                "line": 85,
4878                "column": 39
4879              },
4880              "end": {
4881                "line": 85,
4882                "column": 44
4883              }
4884            }
4885          },
4886          "loc": {
4887            "start": {
4888              "line": 85,
4889              "column": 39
4890            },
4891            "end": {
4892              "line": 85,
4893              "column": 44
4894            }
4895          }
4896        },
4897        "body": {
4898          "type": "BlockStatement",
4899          "statements": [
4900            {
4901              "type": "ReturnStatement",
4902              "argument": {
4903                "type": "StringLiteral",
4904                "value": "foo",
4905                "loc": {
4906                  "start": {
4907                    "line": 86,
4908                    "column": 12
4909                  },
4910                  "end": {
4911                    "line": 86,
4912                    "column": 17
4913                  }
4914                }
4915              },
4916              "loc": {
4917                "start": {
4918                  "line": 86,
4919                  "column": 5
4920                },
4921                "end": {
4922                  "line": 86,
4923                  "column": 18
4924                }
4925              }
4926            }
4927          ],
4928          "loc": {
4929            "start": {
4930              "line": 85,
4931              "column": 45
4932            },
4933            "end": {
4934              "line": 87,
4935              "column": 2
4936            }
4937          }
4938        },
4939        "loc": {
4940          "start": {
4941            "line": 85,
4942            "column": 1
4943          },
4944          "end": {
4945            "line": 87,
4946            "column": 2
4947          }
4948        }
4949      },
4950      "loc": {
4951        "start": {
4952          "line": 85,
4953          "column": 1
4954        },
4955        "end": {
4956          "line": 87,
4957          "column": 2
4958        }
4959      }
4960    },
4961    {
4962      "type": "FunctionDeclaration",
4963      "function": {
4964        "type": "ScriptFunction",
4965        "id": {
4966          "type": "Identifier",
4967          "name": "func2",
4968          "decorators": [],
4969          "loc": {
4970            "start": {
4971              "line": 88,
4972              "column": 10
4973            },
4974            "end": {
4975              "line": 88,
4976              "column": 15
4977            }
4978          }
4979        },
4980        "generator": false,
4981        "async": false,
4982        "expression": false,
4983        "params": [
4984          {
4985            "type": "Identifier",
4986            "name": "a",
4987            "typeAnnotation": {
4988              "type": "TSStringKeyword",
4989              "loc": {
4990                "start": {
4991                  "line": 88,
4992                  "column": 19
4993                },
4994                "end": {
4995                  "line": 88,
4996                  "column": 25
4997                }
4998              }
4999            },
5000            "decorators": [],
5001            "loc": {
5002              "start": {
5003                "line": 88,
5004                "column": 16
5005              },
5006              "end": {
5007                "line": 88,
5008                "column": 17
5009              }
5010            }
5011          },
5012          {
5013            "type": "Identifier",
5014            "name": "b",
5015            "typeAnnotation": {
5016              "type": "TSNumberKeyword",
5017              "loc": {
5018                "start": {
5019                  "line": 88,
5020                  "column": 30
5021                },
5022                "end": {
5023                  "line": 88,
5024                  "column": 36
5025                }
5026              }
5027            },
5028            "decorators": [],
5029            "loc": {
5030              "start": {
5031                "line": 88,
5032                "column": 27
5033              },
5034              "end": {
5035                "line": 88,
5036                "column": 28
5037              }
5038            }
5039          }
5040        ],
5041        "returnType": {
5042          "type": "TSLiteralType",
5043          "literal": {
5044            "type": "BooleanLiteral",
5045            "value": true,
5046            "loc": {
5047              "start": {
5048                "line": 88,
5049                "column": 39
5050              },
5051              "end": {
5052                "line": 88,
5053                "column": 43
5054              }
5055            }
5056          },
5057          "loc": {
5058            "start": {
5059              "line": 88,
5060              "column": 39
5061            },
5062            "end": {
5063              "line": 88,
5064              "column": 43
5065            }
5066          }
5067        },
5068        "body": {
5069          "type": "BlockStatement",
5070          "statements": [
5071            {
5072              "type": "ReturnStatement",
5073              "argument": {
5074                "type": "BooleanLiteral",
5075                "value": true,
5076                "loc": {
5077                  "start": {
5078                    "line": 89,
5079                    "column": 12
5080                  },
5081                  "end": {
5082                    "line": 89,
5083                    "column": 16
5084                  }
5085                }
5086              },
5087              "loc": {
5088                "start": {
5089                  "line": 89,
5090                  "column": 5
5091                },
5092                "end": {
5093                  "line": 89,
5094                  "column": 17
5095                }
5096              }
5097            }
5098          ],
5099          "loc": {
5100            "start": {
5101              "line": 88,
5102              "column": 44
5103            },
5104            "end": {
5105              "line": 90,
5106              "column": 2
5107            }
5108          }
5109        },
5110        "loc": {
5111          "start": {
5112            "line": 88,
5113            "column": 1
5114          },
5115          "end": {
5116            "line": 90,
5117            "column": 2
5118          }
5119        }
5120      },
5121      "loc": {
5122        "start": {
5123          "line": 88,
5124          "column": 1
5125        },
5126        "end": {
5127          "line": 90,
5128          "column": 2
5129        }
5130      }
5131    },
5132    {
5133      "type": "VariableDeclaration",
5134      "declarations": [
5135        {
5136          "type": "VariableDeclarator",
5137          "id": {
5138            "type": "Identifier",
5139            "name": "l",
5140            "typeAnnotation": {
5141              "type": "TSUnionType",
5142              "types": [
5143                {
5144                  "type": "TSTypeQuery",
5145                  "exprName": {
5146                    "type": "Identifier",
5147                    "name": "func1",
5148                    "decorators": [],
5149                    "loc": {
5150                      "start": {
5151                        "line": 91,
5152                        "column": 15
5153                      },
5154                      "end": {
5155                        "line": 91,
5156                        "column": 20
5157                      }
5158                    }
5159                  },
5160                  "loc": {
5161                    "start": {
5162                      "line": 91,
5163                      "column": 8
5164                    },
5165                    "end": {
5166                      "line": 91,
5167                      "column": 20
5168                    }
5169                  }
5170                },
5171                {
5172                  "type": "TSTypeQuery",
5173                  "exprName": {
5174                    "type": "Identifier",
5175                    "name": "func2",
5176                    "decorators": [],
5177                    "loc": {
5178                      "start": {
5179                        "line": 91,
5180                        "column": 30
5181                      },
5182                      "end": {
5183                        "line": 91,
5184                        "column": 35
5185                      }
5186                    }
5187                  },
5188                  "loc": {
5189                    "start": {
5190                      "line": 91,
5191                      "column": 23
5192                    },
5193                    "end": {
5194                      "line": 91,
5195                      "column": 35
5196                    }
5197                  }
5198                }
5199              ],
5200              "loc": {
5201                "start": {
5202                  "line": 91,
5203                  "column": 8
5204                },
5205                "end": {
5206                  "line": 91,
5207                  "column": 35
5208                }
5209              }
5210            },
5211            "decorators": [],
5212            "loc": {
5213              "start": {
5214                "line": 91,
5215                "column": 5
5216              },
5217              "end": {
5218                "line": 91,
5219                "column": 6
5220              }
5221            }
5222          },
5223          "init": null,
5224          "loc": {
5225            "start": {
5226              "line": 91,
5227              "column": 5
5228            },
5229            "end": {
5230              "line": 91,
5231              "column": 6
5232            }
5233          }
5234        }
5235      ],
5236      "kind": "var",
5237      "loc": {
5238        "start": {
5239          "line": 91,
5240          "column": 1
5241        },
5242        "end": {
5243          "line": 91,
5244          "column": 36
5245        }
5246      }
5247    },
5248    {
5249      "type": "VariableDeclaration",
5250      "declarations": [
5251        {
5252          "type": "VariableDeclarator",
5253          "id": {
5254            "type": "Identifier",
5255            "name": "l",
5256            "typeAnnotation": {
5257              "type": "TSUnionType",
5258              "types": [
5259                {
5260                  "type": "TSParenthesizedType",
5261                  "typeAnnotation": {
5262                    "type": "TSFunctionType",
5263                    "params": [
5264                      {
5265                        "type": "Identifier",
5266                        "name": "a",
5267                        "typeAnnotation": {
5268                          "type": "TSNumberKeyword",
5269                          "loc": {
5270                            "start": {
5271                              "line": 92,
5272                              "column": 13
5273                            },
5274                            "end": {
5275                              "line": 92,
5276                              "column": 19
5277                            }
5278                          }
5279                        },
5280                        "decorators": [],
5281                        "loc": {
5282                          "start": {
5283                            "line": 92,
5284                            "column": 10
5285                          },
5286                          "end": {
5287                            "line": 92,
5288                            "column": 11
5289                          }
5290                        }
5291                      },
5292                      {
5293                        "type": "Identifier",
5294                        "name": "b",
5295                        "typeAnnotation": {
5296                          "type": "TSStringKeyword",
5297                          "loc": {
5298                            "start": {
5299                              "line": 92,
5300                              "column": 24
5301                            },
5302                            "end": {
5303                              "line": 92,
5304                              "column": 30
5305                            }
5306                          }
5307                        },
5308                        "decorators": [],
5309                        "loc": {
5310                          "start": {
5311                            "line": 92,
5312                            "column": 21
5313                          },
5314                          "end": {
5315                            "line": 92,
5316                            "column": 22
5317                          }
5318                        }
5319                      }
5320                    ],
5321                    "returnType": {
5322                      "type": "TSLiteralType",
5323                      "literal": {
5324                        "type": "StringLiteral",
5325                        "value": "foo",
5326                        "loc": {
5327                          "start": {
5328                            "line": 92,
5329                            "column": 35
5330                          },
5331                          "end": {
5332                            "line": 92,
5333                            "column": 40
5334                          }
5335                        }
5336                      },
5337                      "loc": {
5338                        "start": {
5339                          "line": 92,
5340                          "column": 35
5341                        },
5342                        "end": {
5343                          "line": 92,
5344                          "column": 40
5345                        }
5346                      }
5347                    },
5348                    "loc": {
5349                      "start": {
5350                        "line": 92,
5351                        "column": 9
5352                      },
5353                      "end": {
5354                        "line": 92,
5355                        "column": 40
5356                      }
5357                    }
5358                  },
5359                  "loc": {
5360                    "start": {
5361                      "line": 92,
5362                      "column": 8
5363                    },
5364                    "end": {
5365                      "line": 92,
5366                      "column": 41
5367                    }
5368                  }
5369                },
5370                {
5371                  "type": "TSParenthesizedType",
5372                  "typeAnnotation": {
5373                    "type": "TSFunctionType",
5374                    "params": [
5375                      {
5376                        "type": "Identifier",
5377                        "name": "a",
5378                        "typeAnnotation": {
5379                          "type": "TSStringKeyword",
5380                          "loc": {
5381                            "start": {
5382                              "line": 92,
5383                              "column": 49
5384                            },
5385                            "end": {
5386                              "line": 92,
5387                              "column": 55
5388                            }
5389                          }
5390                        },
5391                        "decorators": [],
5392                        "loc": {
5393                          "start": {
5394                            "line": 92,
5395                            "column": 46
5396                          },
5397                          "end": {
5398                            "line": 92,
5399                            "column": 47
5400                          }
5401                        }
5402                      },
5403                      {
5404                        "type": "Identifier",
5405                        "name": "b",
5406                        "typeAnnotation": {
5407                          "type": "TSNumberKeyword",
5408                          "loc": {
5409                            "start": {
5410                              "line": 92,
5411                              "column": 60
5412                            },
5413                            "end": {
5414                              "line": 92,
5415                              "column": 66
5416                            }
5417                          }
5418                        },
5419                        "decorators": [],
5420                        "loc": {
5421                          "start": {
5422                            "line": 92,
5423                            "column": 57
5424                          },
5425                          "end": {
5426                            "line": 92,
5427                            "column": 58
5428                          }
5429                        }
5430                      }
5431                    ],
5432                    "returnType": {
5433                      "type": "TSLiteralType",
5434                      "literal": {
5435                        "type": "BooleanLiteral",
5436                        "value": true,
5437                        "loc": {
5438                          "start": {
5439                            "line": 92,
5440                            "column": 71
5441                          },
5442                          "end": {
5443                            "line": 92,
5444                            "column": 75
5445                          }
5446                        }
5447                      },
5448                      "loc": {
5449                        "start": {
5450                          "line": 92,
5451                          "column": 71
5452                        },
5453                        "end": {
5454                          "line": 92,
5455                          "column": 75
5456                        }
5457                      }
5458                    },
5459                    "loc": {
5460                      "start": {
5461                        "line": 92,
5462                        "column": 45
5463                      },
5464                      "end": {
5465                        "line": 92,
5466                        "column": 75
5467                      }
5468                    }
5469                  },
5470                  "loc": {
5471                    "start": {
5472                      "line": 92,
5473                      "column": 44
5474                    },
5475                    "end": {
5476                      "line": 92,
5477                      "column": 76
5478                    }
5479                  }
5480                }
5481              ],
5482              "loc": {
5483                "start": {
5484                  "line": 92,
5485                  "column": 8
5486                },
5487                "end": {
5488                  "line": 92,
5489                  "column": 76
5490                }
5491              }
5492            },
5493            "decorators": [],
5494            "loc": {
5495              "start": {
5496                "line": 92,
5497                "column": 5
5498              },
5499              "end": {
5500                "line": 92,
5501                "column": 6
5502              }
5503            }
5504          },
5505          "init": null,
5506          "loc": {
5507            "start": {
5508              "line": 92,
5509              "column": 5
5510            },
5511            "end": {
5512              "line": 92,
5513              "column": 6
5514            }
5515          }
5516        }
5517      ],
5518      "kind": "var",
5519      "loc": {
5520        "start": {
5521          "line": 92,
5522          "column": 1
5523        },
5524        "end": {
5525          "line": 92,
5526          "column": 6
5527        }
5528      }
5529    },
5530    {
5531      "type": "VariableDeclaration",
5532      "declarations": [
5533        {
5534          "type": "VariableDeclarator",
5535          "id": {
5536            "type": "Identifier",
5537            "name": "m",
5538            "typeAnnotation": {
5539              "type": "TSTupleType",
5540              "elementTypes": [
5541                {
5542                  "type": "TSNamedTupleMember",
5543                  "elementType": {
5544                    "type": "TSNumberKeyword",
5545                    "loc": {
5546                      "start": {
5547                        "line": 94,
5548                        "column": 12
5549                      },
5550                      "end": {
5551                        "line": 94,
5552                        "column": 18
5553                      }
5554                    }
5555                  },
5556                  "label": {
5557                    "type": "Identifier",
5558                    "name": "a",
5559                    "decorators": [],
5560                    "loc": {
5561                      "start": {
5562                        "line": 94,
5563                        "column": 9
5564                      },
5565                      "end": {
5566                        "line": 94,
5567                        "column": 10
5568                      }
5569                    }
5570                  },
5571                  "loc": {
5572                    "start": {
5573                      "line": 94,
5574                      "column": 9
5575                    },
5576                    "end": {
5577                      "line": 94,
5578                      "column": 19
5579                    }
5580                  }
5581                },
5582                {
5583                  "type": "TSNamedTupleMember",
5584                  "elementType": {
5585                    "type": "TSStringKeyword",
5586                    "loc": {
5587                      "start": {
5588                        "line": 94,
5589                        "column": 23
5590                      },
5591                      "end": {
5592                        "line": 94,
5593                        "column": 29
5594                      }
5595                    }
5596                  },
5597                  "label": {
5598                    "type": "Identifier",
5599                    "name": "b",
5600                    "decorators": [],
5601                    "loc": {
5602                      "start": {
5603                        "line": 94,
5604                        "column": 20
5605                      },
5606                      "end": {
5607                        "line": 94,
5608                        "column": 21
5609                      }
5610                    }
5611                  },
5612                  "loc": {
5613                    "start": {
5614                      "line": 94,
5615                      "column": 20
5616                    },
5617                    "end": {
5618                      "line": 94,
5619                      "column": 30
5620                    }
5621                  }
5622                },
5623                {
5624                  "type": "TSNamedTupleMember",
5625                  "elementType": {
5626                    "type": "TSBooleanKeyword",
5627                    "loc": {
5628                      "start": {
5629                        "line": 94,
5630                        "column": 34
5631                      },
5632                      "end": {
5633                        "line": 94,
5634                        "column": 41
5635                      }
5636                    }
5637                  },
5638                  "label": {
5639                    "type": "Identifier",
5640                    "name": "c",
5641                    "decorators": [],
5642                    "loc": {
5643                      "start": {
5644                        "line": 94,
5645                        "column": 31
5646                      },
5647                      "end": {
5648                        "line": 94,
5649                        "column": 32
5650                      }
5651                    }
5652                  },
5653                  "loc": {
5654                    "start": {
5655                      "line": 94,
5656                      "column": 31
5657                    },
5658                    "end": {
5659                      "line": 94,
5660                      "column": 42
5661                    }
5662                  }
5663                }
5664              ],
5665              "loc": {
5666                "start": {
5667                  "line": 94,
5668                  "column": 8
5669                },
5670                "end": {
5671                  "line": 94,
5672                  "column": 42
5673                }
5674              }
5675            },
5676            "decorators": [],
5677            "loc": {
5678              "start": {
5679                "line": 94,
5680                "column": 5
5681              },
5682              "end": {
5683                "line": 94,
5684                "column": 6
5685              }
5686            }
5687          },
5688          "init": null,
5689          "loc": {
5690            "start": {
5691              "line": 94,
5692              "column": 5
5693            },
5694            "end": {
5695              "line": 94,
5696              "column": 6
5697            }
5698          }
5699        }
5700      ],
5701      "kind": "var",
5702      "loc": {
5703        "start": {
5704          "line": 94,
5705          "column": 1
5706        },
5707        "end": {
5708          "line": 94,
5709          "column": 43
5710        }
5711      }
5712    },
5713    {
5714      "type": "VariableDeclaration",
5715      "declarations": [
5716        {
5717          "type": "VariableDeclarator",
5718          "id": {
5719            "type": "Identifier",
5720            "name": "m",
5721            "typeAnnotation": {
5722              "type": "TSTupleType",
5723              "elementTypes": [
5724                {
5725                  "type": "TSNumberKeyword",
5726                  "loc": {
5727                    "start": {
5728                      "line": 95,
5729                      "column": 9
5730                    },
5731                    "end": {
5732                      "line": 95,
5733                      "column": 16
5734                    }
5735                  }
5736                },
5737                {
5738                  "type": "TSStringKeyword",
5739                  "loc": {
5740                    "start": {
5741                      "line": 95,
5742                      "column": 17
5743                    },
5744                    "end": {
5745                      "line": 95,
5746                      "column": 24
5747                    }
5748                  }
5749                },
5750                {
5751                  "type": "TSBooleanKeyword",
5752                  "loc": {
5753                    "start": {
5754                      "line": 95,
5755                      "column": 25
5756                    },
5757                    "end": {
5758                      "line": 95,
5759                      "column": 33
5760                    }
5761                  }
5762                }
5763              ],
5764              "loc": {
5765                "start": {
5766                  "line": 95,
5767                  "column": 8
5768                },
5769                "end": {
5770                  "line": 95,
5771                  "column": 33
5772                }
5773              }
5774            },
5775            "decorators": [],
5776            "loc": {
5777              "start": {
5778                "line": 95,
5779                "column": 5
5780              },
5781              "end": {
5782                "line": 95,
5783                "column": 6
5784              }
5785            }
5786          },
5787          "init": null,
5788          "loc": {
5789            "start": {
5790              "line": 95,
5791              "column": 5
5792            },
5793            "end": {
5794              "line": 95,
5795              "column": 6
5796            }
5797          }
5798        }
5799      ],
5800      "kind": "var",
5801      "loc": {
5802        "start": {
5803          "line": 95,
5804          "column": 1
5805        },
5806        "end": {
5807          "line": 95,
5808          "column": 34
5809        }
5810      }
5811    },
5812    {
5813      "type": "VariableDeclaration",
5814      "declarations": [
5815        {
5816          "type": "VariableDeclarator",
5817          "id": {
5818            "type": "Identifier",
5819            "name": "n",
5820            "typeAnnotation": {
5821              "type": "TSUnionType",
5822              "types": [
5823                {
5824                  "type": "TSArrayType",
5825                  "elementType": {
5826                    "type": "TSNumberKeyword",
5827                    "loc": {
5828                      "start": {
5829                        "line": 97,
5830                        "column": 8
5831                      },
5832                      "end": {
5833                        "line": 97,
5834                        "column": 14
5835                      }
5836                    }
5837                  },
5838                  "loc": {
5839                    "start": {
5840                      "line": 97,
5841                      "column": 8
5842                    },
5843                    "end": {
5844                      "line": 97,
5845                      "column": 16
5846                    }
5847                  }
5848                },
5849                {
5850                  "type": "TSTupleType",
5851                  "elementTypes": [
5852                    {
5853                      "type": "TSLiteralType",
5854                      "literal": {
5855                        "type": "NumberLiteral",
5856                        "value": 1,
5857                        "loc": {
5858                          "start": {
5859                            "line": 97,
5860                            "column": 20
5861                          },
5862                          "end": {
5863                            "line": 97,
5864                            "column": 21
5865                          }
5866                        }
5867                      },
5868                      "loc": {
5869                        "start": {
5870                          "line": 97,
5871                          "column": 20
5872                        },
5873                        "end": {
5874                          "line": 97,
5875                          "column": 22
5876                        }
5877                      }
5878                    },
5879                    {
5880                      "type": "TSLiteralType",
5881                      "literal": {
5882                        "type": "NumberLiteral",
5883                        "value": 2,
5884                        "loc": {
5885                          "start": {
5886                            "line": 97,
5887                            "column": 23
5888                          },
5889                          "end": {
5890                            "line": 97,
5891                            "column": 24
5892                          }
5893                        }
5894                      },
5895                      "loc": {
5896                        "start": {
5897                          "line": 97,
5898                          "column": 23
5899                        },
5900                        "end": {
5901                          "line": 97,
5902                          "column": 25
5903                        }
5904                      }
5905                    },
5906                    {
5907                      "type": "TSLiteralType",
5908                      "literal": {
5909                        "type": "NumberLiteral",
5910                        "value": 3,
5911                        "loc": {
5912                          "start": {
5913                            "line": 97,
5914                            "column": 26
5915                          },
5916                          "end": {
5917                            "line": 97,
5918                            "column": 27
5919                          }
5920                        }
5921                      },
5922                      "loc": {
5923                        "start": {
5924                          "line": 97,
5925                          "column": 26
5926                        },
5927                        "end": {
5928                          "line": 97,
5929                          "column": 28
5930                        }
5931                      }
5932                    }
5933                  ],
5934                  "loc": {
5935                    "start": {
5936                      "line": 97,
5937                      "column": 19
5938                    },
5939                    "end": {
5940                      "line": 97,
5941                      "column": 28
5942                    }
5943                  }
5944                }
5945              ],
5946              "loc": {
5947                "start": {
5948                  "line": 97,
5949                  "column": 8
5950                },
5951                "end": {
5952                  "line": 97,
5953                  "column": 28
5954                }
5955              }
5956            },
5957            "decorators": [],
5958            "loc": {
5959              "start": {
5960                "line": 97,
5961                "column": 5
5962              },
5963              "end": {
5964                "line": 97,
5965                "column": 6
5966              }
5967            }
5968          },
5969          "init": null,
5970          "loc": {
5971            "start": {
5972              "line": 97,
5973              "column": 5
5974            },
5975            "end": {
5976              "line": 97,
5977              "column": 6
5978            }
5979          }
5980        }
5981      ],
5982      "kind": "var",
5983      "loc": {
5984        "start": {
5985          "line": 97,
5986          "column": 1
5987        },
5988        "end": {
5989          "line": 97,
5990          "column": 29
5991        }
5992      }
5993    },
5994    {
5995      "type": "VariableDeclaration",
5996      "declarations": [
5997        {
5998          "type": "VariableDeclarator",
5999          "id": {
6000            "type": "Identifier",
6001            "name": "n",
6002            "typeAnnotation": {
6003              "type": "TSUnionType",
6004              "types": [
6005                {
6006                  "type": "TSTupleType",
6007                  "elementTypes": [
6008                    {
6009                      "type": "TSLiteralType",
6010                      "literal": {
6011                        "type": "NumberLiteral",
6012                        "value": 1,
6013                        "loc": {
6014                          "start": {
6015                            "line": 98,
6016                            "column": 9
6017                          },
6018                          "end": {
6019                            "line": 98,
6020                            "column": 10
6021                          }
6022                        }
6023                      },
6024                      "loc": {
6025                        "start": {
6026                          "line": 98,
6027                          "column": 9
6028                        },
6029                        "end": {
6030                          "line": 98,
6031                          "column": 11
6032                        }
6033                      }
6034                    },
6035                    {
6036                      "type": "TSLiteralType",
6037                      "literal": {
6038                        "type": "NumberLiteral",
6039                        "value": 2,
6040                        "loc": {
6041                          "start": {
6042                            "line": 98,
6043                            "column": 12
6044                          },
6045                          "end": {
6046                            "line": 98,
6047                            "column": 13
6048                          }
6049                        }
6050                      },
6051                      "loc": {
6052                        "start": {
6053                          "line": 98,
6054                          "column": 12
6055                        },
6056                        "end": {
6057                          "line": 98,
6058                          "column": 14
6059                        }
6060                      }
6061                    },
6062                    {
6063                      "type": "TSLiteralType",
6064                      "literal": {
6065                        "type": "NumberLiteral",
6066                        "value": 3,
6067                        "loc": {
6068                          "start": {
6069                            "line": 98,
6070                            "column": 15
6071                          },
6072                          "end": {
6073                            "line": 98,
6074                            "column": 16
6075                          }
6076                        }
6077                      },
6078                      "loc": {
6079                        "start": {
6080                          "line": 98,
6081                          "column": 15
6082                        },
6083                        "end": {
6084                          "line": 98,
6085                          "column": 17
6086                        }
6087                      }
6088                    }
6089                  ],
6090                  "loc": {
6091                    "start": {
6092                      "line": 98,
6093                      "column": 8
6094                    },
6095                    "end": {
6096                      "line": 98,
6097                      "column": 17
6098                    }
6099                  }
6100                },
6101                {
6102                  "type": "TSArrayType",
6103                  "elementType": {
6104                    "type": "TSNumberKeyword",
6105                    "loc": {
6106                      "start": {
6107                        "line": 98,
6108                        "column": 20
6109                      },
6110                      "end": {
6111                        "line": 98,
6112                        "column": 26
6113                      }
6114                    }
6115                  },
6116                  "loc": {
6117                    "start": {
6118                      "line": 98,
6119                      "column": 20
6120                    },
6121                    "end": {
6122                      "line": 98,
6123                      "column": 28
6124                    }
6125                  }
6126                }
6127              ],
6128              "loc": {
6129                "start": {
6130                  "line": 98,
6131                  "column": 8
6132                },
6133                "end": {
6134                  "line": 98,
6135                  "column": 28
6136                }
6137              }
6138            },
6139            "decorators": [],
6140            "loc": {
6141              "start": {
6142                "line": 98,
6143                "column": 5
6144              },
6145              "end": {
6146                "line": 98,
6147                "column": 6
6148              }
6149            }
6150          },
6151          "init": null,
6152          "loc": {
6153            "start": {
6154              "line": 98,
6155              "column": 5
6156            },
6157            "end": {
6158              "line": 98,
6159              "column": 6
6160            }
6161          }
6162        }
6163      ],
6164      "kind": "var",
6165      "loc": {
6166        "start": {
6167          "line": 98,
6168          "column": 1
6169        },
6170        "end": {
6171          "line": 98,
6172          "column": 29
6173        }
6174      }
6175    },
6176    {
6177      "type": "TSInterfaceDeclaration",
6178      "body": {
6179        "type": "TSInterfaceBody",
6180        "body": [
6181          {
6182            "type": "TSPropertySignature",
6183            "computed": false,
6184            "optional": false,
6185            "readonly": false,
6186            "key": {
6187              "type": "Identifier",
6188              "name": "a",
6189              "decorators": [],
6190              "loc": {
6191                "start": {
6192                  "line": 101,
6193                  "column": 5
6194                },
6195                "end": {
6196                  "line": 101,
6197                  "column": 6
6198                }
6199              }
6200            },
6201            "typeAnnotation": {
6202              "type": "TSNumberKeyword",
6203              "loc": {
6204                "start": {
6205                  "line": 101,
6206                  "column": 8
6207                },
6208                "end": {
6209                  "line": 101,
6210                  "column": 14
6211                }
6212              }
6213            },
6214            "loc": {
6215              "start": {
6216                "line": 101,
6217                "column": 5
6218              },
6219              "end": {
6220                "line": 101,
6221                "column": 15
6222              }
6223            }
6224          }
6225        ],
6226        "loc": {
6227          "start": {
6228            "line": 100,
6229            "column": 22
6230          },
6231          "end": {
6232            "line": 102,
6233            "column": 2
6234          }
6235        }
6236      },
6237      "id": {
6238        "type": "Identifier",
6239        "name": "interface7",
6240        "decorators": [],
6241        "loc": {
6242          "start": {
6243            "line": 100,
6244            "column": 11
6245          },
6246          "end": {
6247            "line": 100,
6248            "column": 21
6249          }
6250        }
6251      },
6252      "extends": [],
6253      "loc": {
6254        "start": {
6255          "line": 100,
6256          "column": 1
6257        },
6258        "end": {
6259          "line": 102,
6260          "column": 2
6261        }
6262      }
6263    },
6264    {
6265      "type": "TSInterfaceDeclaration",
6266      "body": {
6267        "type": "TSInterfaceBody",
6268        "body": [
6269          {
6270            "type": "TSPropertySignature",
6271            "computed": false,
6272            "optional": false,
6273            "readonly": false,
6274            "key": {
6275              "type": "Identifier",
6276              "name": "a",
6277              "decorators": [],
6278              "loc": {
6279                "start": {
6280                  "line": 105,
6281                  "column": 5
6282                },
6283                "end": {
6284                  "line": 105,
6285                  "column": 6
6286                }
6287              }
6288            },
6289            "typeAnnotation": {
6290              "type": "TSNumberKeyword",
6291              "loc": {
6292                "start": {
6293                  "line": 105,
6294                  "column": 8
6295                },
6296                "end": {
6297                  "line": 105,
6298                  "column": 14
6299                }
6300              }
6301            },
6302            "loc": {
6303              "start": {
6304                "line": 105,
6305                "column": 5
6306              },
6307              "end": {
6308                "line": 105,
6309                "column": 15
6310              }
6311            }
6312          }
6313        ],
6314        "loc": {
6315          "start": {
6316            "line": 104,
6317            "column": 41
6318          },
6319          "end": {
6320            "line": 106,
6321            "column": 2
6322          }
6323        }
6324      },
6325      "id": {
6326        "type": "Identifier",
6327        "name": "interface8",
6328        "decorators": [],
6329        "loc": {
6330          "start": {
6331            "line": 104,
6332            "column": 11
6333          },
6334          "end": {
6335            "line": 104,
6336            "column": 21
6337          }
6338        }
6339      },
6340      "extends": [
6341        {
6342          "type": "TSInterfaceHeritage",
6343          "expression": {
6344            "type": "TSTypeReference",
6345            "typeName": {
6346              "type": "Identifier",
6347              "name": "interface7",
6348              "decorators": [],
6349              "loc": {
6350                "start": {
6351                  "line": 104,
6352                  "column": 30
6353                },
6354                "end": {
6355                  "line": 104,
6356                  "column": 40
6357                }
6358              }
6359            },
6360            "loc": {
6361              "start": {
6362                "line": 104,
6363                "column": 41
6364              },
6365              "end": {
6366                "line": 104,
6367                "column": 40
6368              }
6369            }
6370          },
6371          "loc": {
6372            "start": {
6373              "line": 104,
6374              "column": 41
6375            },
6376            "end": {
6377              "line": 104,
6378              "column": 40
6379            }
6380          }
6381        }
6382      ],
6383      "loc": {
6384        "start": {
6385          "line": 104,
6386          "column": 1
6387        },
6388        "end": {
6389          "line": 106,
6390          "column": 2
6391        }
6392      }
6393    },
6394    {
6395      "type": "TSInterfaceDeclaration",
6396      "body": {
6397        "type": "TSInterfaceBody",
6398        "body": [
6399          {
6400            "type": "TSPropertySignature",
6401            "computed": false,
6402            "optional": false,
6403            "readonly": false,
6404            "key": {
6405              "type": "Identifier",
6406              "name": "a",
6407              "decorators": [],
6408              "loc": {
6409                "start": {
6410                  "line": 109,
6411                  "column": 5
6412                },
6413                "end": {
6414                  "line": 109,
6415                  "column": 6
6416                }
6417              }
6418            },
6419            "typeAnnotation": {
6420              "type": "TSNumberKeyword",
6421              "loc": {
6422                "start": {
6423                  "line": 109,
6424                  "column": 8
6425                },
6426                "end": {
6427                  "line": 109,
6428                  "column": 14
6429                }
6430              }
6431            },
6432            "loc": {
6433              "start": {
6434                "line": 109,
6435                "column": 5
6436              },
6437              "end": {
6438                "line": 109,
6439                "column": 15
6440              }
6441            }
6442          }
6443        ],
6444        "loc": {
6445          "start": {
6446            "line": 108,
6447            "column": 22
6448          },
6449          "end": {
6450            "line": 110,
6451            "column": 2
6452          }
6453        }
6454      },
6455      "id": {
6456        "type": "Identifier",
6457        "name": "interface9",
6458        "decorators": [],
6459        "loc": {
6460          "start": {
6461            "line": 108,
6462            "column": 11
6463          },
6464          "end": {
6465            "line": 108,
6466            "column": 21
6467          }
6468        }
6469      },
6470      "extends": [],
6471      "loc": {
6472        "start": {
6473          "line": 108,
6474          "column": 1
6475        },
6476        "end": {
6477          "line": 110,
6478          "column": 2
6479        }
6480      }
6481    },
6482    {
6483      "type": "VariableDeclaration",
6484      "declarations": [
6485        {
6486          "type": "VariableDeclarator",
6487          "id": {
6488            "type": "Identifier",
6489            "name": "o",
6490            "typeAnnotation": {
6491              "type": "TSTypeReference",
6492              "typeName": {
6493                "type": "Identifier",
6494                "name": "interface9",
6495                "decorators": [],
6496                "loc": {
6497                  "start": {
6498                    "line": 112,
6499                    "column": 8
6500                  },
6501                  "end": {
6502                    "line": 112,
6503                    "column": 18
6504                  }
6505                }
6506              },
6507              "loc": {
6508                "start": {
6509                  "line": 112,
6510                  "column": 8
6511                },
6512                "end": {
6513                  "line": 112,
6514                  "column": 18
6515                }
6516              }
6517            },
6518            "decorators": [],
6519            "loc": {
6520              "start": {
6521                "line": 112,
6522                "column": 5
6523              },
6524              "end": {
6525                "line": 112,
6526                "column": 6
6527              }
6528            }
6529          },
6530          "init": null,
6531          "loc": {
6532            "start": {
6533              "line": 112,
6534              "column": 5
6535            },
6536            "end": {
6537              "line": 112,
6538              "column": 6
6539            }
6540          }
6541        }
6542      ],
6543      "kind": "var",
6544      "loc": {
6545        "start": {
6546          "line": 112,
6547          "column": 1
6548        },
6549        "end": {
6550          "line": 112,
6551          "column": 19
6552        }
6553      }
6554    },
6555    {
6556      "type": "VariableDeclaration",
6557      "declarations": [
6558        {
6559          "type": "VariableDeclarator",
6560          "id": {
6561            "type": "Identifier",
6562            "name": "o",
6563            "typeAnnotation": {
6564              "type": "TSTypeReference",
6565              "typeName": {
6566                "type": "Identifier",
6567                "name": "interface8",
6568                "decorators": [],
6569                "loc": {
6570                  "start": {
6571                    "line": 113,
6572                    "column": 8
6573                  },
6574                  "end": {
6575                    "line": 113,
6576                    "column": 18
6577                  }
6578                }
6579              },
6580              "loc": {
6581                "start": {
6582                  "line": 113,
6583                  "column": 8
6584                },
6585                "end": {
6586                  "line": 113,
6587                  "column": 18
6588                }
6589              }
6590            },
6591            "decorators": [],
6592            "loc": {
6593              "start": {
6594                "line": 113,
6595                "column": 5
6596              },
6597              "end": {
6598                "line": 113,
6599                "column": 6
6600              }
6601            }
6602          },
6603          "init": null,
6604          "loc": {
6605            "start": {
6606              "line": 113,
6607              "column": 5
6608            },
6609            "end": {
6610              "line": 113,
6611              "column": 6
6612            }
6613          }
6614        }
6615      ],
6616      "kind": "var",
6617      "loc": {
6618        "start": {
6619          "line": 113,
6620          "column": 1
6621        },
6622        "end": {
6623          "line": 113,
6624          "column": 19
6625        }
6626      }
6627    },
6628    {
6629      "type": "VariableDeclaration",
6630      "declarations": [
6631        {
6632          "type": "VariableDeclarator",
6633          "id": {
6634            "type": "Identifier",
6635            "name": "p",
6636            "typeAnnotation": {
6637              "type": "TSTypeLiteral",
6638              "members": [
6639                {
6640                  "type": "TSPropertySignature",
6641                  "computed": false,
6642                  "optional": false,
6643                  "readonly": false,
6644                  "key": {
6645                    "type": "Identifier",
6646                    "name": "a",
6647                    "decorators": [],
6648                    "loc": {
6649                      "start": {
6650                        "line": 115,
6651                        "column": 10
6652                      },
6653                      "end": {
6654                        "line": 115,
6655                        "column": 11
6656                      }
6657                    }
6658                  },
6659                  "typeAnnotation": {
6660                    "type": "TSNumberKeyword",
6661                    "loc": {
6662                      "start": {
6663                        "line": 115,
6664                        "column": 13
6665                      },
6666                      "end": {
6667                        "line": 115,
6668                        "column": 19
6669                      }
6670                    }
6671                  },
6672                  "loc": {
6673                    "start": {
6674                      "line": 115,
6675                      "column": 10
6676                    },
6677                    "end": {
6678                      "line": 115,
6679                      "column": 20
6680                    }
6681                  }
6682                },
6683                {
6684                  "type": "TSPropertySignature",
6685                  "computed": false,
6686                  "optional": false,
6687                  "readonly": false,
6688                  "key": {
6689                    "type": "Identifier",
6690                    "name": "b",
6691                    "decorators": [],
6692                    "loc": {
6693                      "start": {
6694                        "line": 115,
6695                        "column": 21
6696                      },
6697                      "end": {
6698                        "line": 115,
6699                        "column": 22
6700                      }
6701                    }
6702                  },
6703                  "typeAnnotation": {
6704                    "type": "TSStringKeyword",
6705                    "loc": {
6706                      "start": {
6707                        "line": 115,
6708                        "column": 24
6709                      },
6710                      "end": {
6711                        "line": 115,
6712                        "column": 30
6713                      }
6714                    }
6715                  },
6716                  "loc": {
6717                    "start": {
6718                      "line": 115,
6719                      "column": 21
6720                    },
6721                    "end": {
6722                      "line": 115,
6723                      "column": 32
6724                    }
6725                  }
6726                }
6727              ],
6728              "loc": {
6729                "start": {
6730                  "line": 115,
6731                  "column": 8
6732                },
6733                "end": {
6734                  "line": 115,
6735                  "column": 32
6736                }
6737              }
6738            },
6739            "decorators": [],
6740            "loc": {
6741              "start": {
6742                "line": 115,
6743                "column": 5
6744              },
6745              "end": {
6746                "line": 115,
6747                "column": 6
6748              }
6749            }
6750          },
6751          "init": null,
6752          "loc": {
6753            "start": {
6754              "line": 115,
6755              "column": 5
6756            },
6757            "end": {
6758              "line": 115,
6759              "column": 6
6760            }
6761          }
6762        }
6763      ],
6764      "kind": "var",
6765      "loc": {
6766        "start": {
6767          "line": 115,
6768          "column": 1
6769        },
6770        "end": {
6771          "line": 115,
6772          "column": 33
6773        }
6774      }
6775    },
6776    {
6777      "type": "VariableDeclaration",
6778      "declarations": [
6779        {
6780          "type": "VariableDeclarator",
6781          "id": {
6782            "type": "Identifier",
6783            "name": "p",
6784            "typeAnnotation": {
6785              "type": "TSTypeQuery",
6786              "exprName": {
6787                "type": "Identifier",
6788                "name": "p",
6789                "decorators": [],
6790                "loc": {
6791                  "start": {
6792                    "line": 116,
6793                    "column": 15
6794                  },
6795                  "end": {
6796                    "line": 116,
6797                    "column": 16
6798                  }
6799                }
6800              },
6801              "loc": {
6802                "start": {
6803                  "line": 116,
6804                  "column": 8
6805                },
6806                "end": {
6807                  "line": 116,
6808                  "column": 16
6809                }
6810              }
6811            },
6812            "decorators": [],
6813            "loc": {
6814              "start": {
6815                "line": 116,
6816                "column": 5
6817              },
6818              "end": {
6819                "line": 116,
6820                "column": 6
6821              }
6822            }
6823          },
6824          "init": null,
6825          "loc": {
6826            "start": {
6827              "line": 116,
6828              "column": 5
6829            },
6830            "end": {
6831              "line": 116,
6832              "column": 6
6833            }
6834          }
6835        }
6836      ],
6837      "kind": "var",
6838      "loc": {
6839        "start": {
6840          "line": 116,
6841          "column": 1
6842        },
6843        "end": {
6844          "line": 116,
6845          "column": 17
6846        }
6847      }
6848    }
6849  ],
6850  "loc": {
6851    "start": {
6852      "line": 1,
6853      "column": 1
6854    },
6855    "end": {
6856      "line": 117,
6857      "column": 1
6858    }
6859  }
6860}
6861