diff --git a/internal/checker/emitresolver.go b/internal/checker/emitresolver.go
index 286fe421049..0a748a296d6 100644
--- a/internal/checker/emitresolver.go
+++ b/internal/checker/emitresolver.go
@@ -550,7 +550,8 @@ func (r *EmitResolver) IsDefinitelyReferenceToGlobalSymbolObject(node *ast.Node)
r.checkerMu.Lock()
defer r.checkerMu.Unlock()
// Exactly `Symbol.something` and `Symbol` either does not resolve or definitely resolves to the global Symbol
- return r.checker.getResolvedSymbol(node.Expression()) == r.checker.getGlobalSymbol("Symbol", ast.SymbolFlagsValue|ast.SymbolFlagsExportValue, nil /*diagnostic*/)
+ globalSymbol := core.OrElse(r.checker.getGlobalSymbol("Symbol", ast.SymbolFlagsValue|ast.SymbolFlagsExportValue, nil /*diagnostic*/), r.checker.unknownSymbol)
+ return r.checker.getResolvedSymbol(node.Expression()) == globalSymbol
}
if node.Expression().Expression().Kind != ast.KindIdentifier || node.Expression().Expression().Text() != "globalThis" || node.Expression().Name().Text() != "Symbol" {
return false
diff --git a/internal/checker/nodebuilderimpl.go b/internal/checker/nodebuilderimpl.go
index 0286c756b65..aa01471063a 100644
--- a/internal/checker/nodebuilderimpl.go
+++ b/internal/checker/nodebuilderimpl.go
@@ -120,7 +120,7 @@ func newNodeBuilderImpl(ch *Checker, e *printer.EmitContext, idToSymbol map[*ast
if idToSymbol == nil {
idToSymbol = make(map[*ast.IdentifierNode]*ast.Symbol)
}
- b := &NodeBuilderImpl{f: e.Factory.AsNodeFactory(), ch: ch, e: e, idToSymbol: idToSymbol, pc: pseudochecker.NewPseudoChecker(ch.strictNullChecks, ch.exactOptionalPropertyTypes)}
+ b := &NodeBuilderImpl{f: e.Factory.AsNodeFactory(), ch: ch, e: e, idToSymbol: idToSymbol, pc: pseudochecker.NewPseudoChecker(ch.strictNullChecks, ch.exactOptionalPropertyTypes, ch.compilerOptions)}
b.cloneBindingNameVisitor = ast.NewNodeVisitor(b.cloneBindingName, b.f, ast.NodeVisitorHooks{})
return b
}
@@ -1166,7 +1166,27 @@ func (b_ *NodeBuilderImpl) sortByBestName(a sortedSymbolNamePair, b sortedSymbol
// A is relative, B is non-relative: prefer B
return 1
}
- return b_.ch.compareSymbols(a.sym, b.sym) // must sort symbols for stable ordering
+ aIsValueContainer := b_.isValueContainerForTypeOnlyContainer(a.sym, b.sym)
+ bIsValueContainer := b_.isValueContainerForTypeOnlyContainer(b.sym, a.sym)
+ if aIsValueContainer != bIsValueContainer {
+ if aIsValueContainer {
+ return -1
+ }
+ return 1
+ }
+ return b_.ch.compareSymbols(a.sym, b.sym)
+}
+
+func (b *NodeBuilderImpl) isValueContainerForTypeOnlyContainer(value *ast.Symbol, container *ast.Symbol) bool {
+ // Strada's stable sort preserves the variable-before-type ordering from
+ // getWithAlternativeContainers during declaration emit. Corsa otherwise
+ // uses compareSymbols to make ties deterministic.
+ return b.ctx.flags&nodebuilder.FlagsUseStructuralFallback != 0 &&
+ value.Flags&ast.SymbolFlagsValue != 0 &&
+ container.Flags&ast.SymbolFlagsValue == 0 &&
+ container.Flags&ast.SymbolFlagsType != 0 &&
+ b.ch.getDeclaredTypeOfSymbol(container).flags&TypeFlagsObject != 0 &&
+ b.ch.getTypeOfSymbol(value) == b.ch.getDeclaredTypeOfSymbol(container)
}
func canHaveModuleSpecifier(node *ast.Node) bool {
@@ -2246,6 +2266,12 @@ func (b *NodeBuilderImpl) serializeTypeForDeclaration(declaration *ast.Declarati
}
}
reportErrors := !b.ctx.suppressReportInferenceFallback
+ if reportErrors &&
+ requiresAddingUndefined &&
+ pt.Kind == pseudochecker.PseudoTypeKindDirect &&
+ !pseudochecker.CanAddUndefinedToTypeNode(pt.AsPseudoTypeDirect().TypeNode) {
+ b.ctx.tracker.ReportInferenceFallback(declaration)
+ }
if b.pseudoTypeEquivalentToType(pt, t, !requiresAddingUndefined && (ast.IsParameterDeclaration(declaration) || ast.IsPropertySignatureDeclaration(declaration) || ast.IsPropertyDeclaration(declaration)) && isOptionalDeclaration(declaration), reportErrors) {
// !!! TODO: If annotated type node is a reference with insufficient type arguments, we should still fall back to type serialization
// see: canReuseTypeNodeAnnotation in strada for context
diff --git a/internal/pseudochecker/checker.go b/internal/pseudochecker/checker.go
index b9baa07f40b..2dd2b1195db 100644
--- a/internal/pseudochecker/checker.go
+++ b/internal/pseudochecker/checker.go
@@ -1,6 +1,11 @@
// pseudochecker is a limited "checker" that returns pseudo-"types" of expressions - mostly those which trivially have type nodes
package pseudochecker
+import (
+ "github.com/microsoft/typescript-go/internal/binder"
+ "github.com/microsoft/typescript-go/internal/core"
+)
+
// TODO: Late binding/symbol merging?
// In strada, `expressionToTypeNode` used many `resolver` methods whose net effect was just
// calling `Checker.GetMergedSymbol` on a symbol when dealing with accessors. Right now those
@@ -14,8 +19,13 @@ package pseudochecker
type PseudoChecker struct {
strictNullChecks bool
exactOptionalPropertyTypes bool
+ nameResolver *binder.NameResolver
}
-func NewPseudoChecker(strictNullChecks bool, exactOptionalPropertyTypes bool) *PseudoChecker {
- return &PseudoChecker{strictNullChecks: strictNullChecks, exactOptionalPropertyTypes: exactOptionalPropertyTypes}
+func NewPseudoChecker(strictNullChecks bool, exactOptionalPropertyTypes bool, compilerOptions *core.CompilerOptions) *PseudoChecker {
+ return &PseudoChecker{
+ strictNullChecks: strictNullChecks,
+ exactOptionalPropertyTypes: exactOptionalPropertyTypes,
+ nameResolver: &binder.NameResolver{CompilerOptions: compilerOptions},
+ }
}
diff --git a/internal/pseudochecker/lookup.go b/internal/pseudochecker/lookup.go
index 015f88f313a..dd0010d3d22 100644
--- a/internal/pseudochecker/lookup.go
+++ b/internal/pseudochecker/lookup.go
@@ -252,7 +252,13 @@ func (ch *PseudoChecker) typeFromSingleReturnExpression(fn *ast.Node) *PseudoTyp
return NewPseudoTypeDirect(t)
}
} else {
- return ch.typeFromExpression(candidateExpr)
+ result := ch.typeFromExpression(candidateExpr)
+ if ast.IsFunctionDeclaration(fn) &&
+ result.Kind == PseudoTypeKindInferred &&
+ len(result.AsPseudoTypeInferred().ErrorNodes) == 0 {
+ return NewPseudoTypeInferred(fn, true)
+ }
+ return result
}
}
return NewPseudoTypeInferred(fn, true)
@@ -427,7 +433,7 @@ func (ch *PseudoChecker) canGetTypeFromObjectLiteral(node *ast.ObjectLiteralExpr
}
if e.Name().Kind == ast.KindComputedPropertyName {
expression := e.Name().Expression()
- if !ast.IsPrimitiveLiteralValue(expression, false) {
+ if !ast.IsPrimitiveLiteralValue(expression, false) && !ch.isDefinitelyReferenceToGlobalSymbolObject(expression) {
errorNodes = append(errorNodes, e.Name())
}
}
@@ -435,6 +441,32 @@ func (ch *PseudoChecker) canGetTypeFromObjectLiteral(node *ast.ObjectLiteralExpr
return errorNodes
}
+func (ch *PseudoChecker) isDefinitelyReferenceToGlobalSymbolObject(node *ast.Node) bool {
+ if !ast.IsPropertyAccessExpression(node) ||
+ !ast.IsIdentifier(node.Name()) ||
+ !ast.IsPropertyAccessExpression(node.Expression()) && !ast.IsIdentifier(node.Expression()) {
+ return false
+ }
+ if ast.IsIdentifier(node.Expression()) {
+ return node.Expression().Text() == "Symbol" && ch.isUnshadowedGlobalName(node.Expression())
+ }
+ return ast.IsIdentifier(node.Expression().Expression()) &&
+ node.Expression().Expression().Text() == "globalThis" &&
+ node.Expression().Name().Text() == "Symbol" &&
+ ch.isUnshadowedGlobalName(node.Expression().Expression())
+}
+
+func (ch *PseudoChecker) isUnshadowedGlobalName(identifier *ast.Node) bool {
+ return ch.nameResolver.Resolve(
+ identifier,
+ identifier.Text(),
+ ast.SymbolFlagsValue|ast.SymbolFlagsExportValue|ast.SymbolFlagsAlias,
+ nil, /*nameNotFoundMessage*/
+ false, /*isUse*/
+ true, /*excludeGlobals*/
+ ) == nil
+}
+
func (ch *PseudoChecker) typeFromArrayLiteral(node *ast.ArrayLiteralExpression) *PseudoType {
if errorNodes := ch.canGetTypeFromArrayLiteral(node); errorNodes != nil {
return NewPseudoTypeInferredWithErrors(node.AsNode(), false, errorNodes)
@@ -574,6 +606,41 @@ func typeNodeCouldReferToUndefined(node *ast.Node) bool {
}
}
+func CanAddUndefinedToTypeNode(node *ast.Node) bool {
+ if ast.IsKeywordTypeKind(node.Kind) {
+ return true
+ }
+ switch node.Kind {
+ case ast.KindLiteralType,
+ ast.KindFunctionType,
+ ast.KindConstructorType,
+ ast.KindArrayType,
+ ast.KindTupleType,
+ ast.KindTypeLiteral,
+ ast.KindTemplateLiteralType,
+ ast.KindThisType:
+ return true
+ case ast.KindParenthesizedType:
+ return CanAddUndefinedToTypeNode(node.AsParenthesizedTypeNode().Type)
+ case ast.KindUnionType:
+ for _, t := range node.AsUnionTypeNode().Types.Nodes {
+ if !CanAddUndefinedToTypeNode(t) {
+ return false
+ }
+ }
+ return true
+ case ast.KindIntersectionType:
+ for _, t := range node.AsIntersectionTypeNode().Types.Nodes {
+ if !CanAddUndefinedToTypeNode(t) {
+ return false
+ }
+ }
+ return true
+ default:
+ return false
+ }
+}
+
// see this as the inverse of `canAddUndefined` in `expressionToTypeNode` in strada
func CouldAlreadyReferToUndefinedType(t *PseudoType) bool {
if t.Kind == PseudoTypeKindNoResult || t.Kind == PseudoTypeKindInferred || isUndefinedPseudoType(t) {
diff --git a/internal/transformers/declarations/diagnostics.go b/internal/transformers/declarations/diagnostics.go
index d8ef8ec3735..dd395de8805 100644
--- a/internal/transformers/declarations/diagnostics.go
+++ b/internal/transformers/declarations/diagnostics.go
@@ -685,7 +685,7 @@ func createGetIsolatedDeclarationErrors(resolver printer.EmitResolver) func(node
if ast.IsSetAccessorDeclaration(node.Parent) {
return createAccessorTypeError(node.Parent)
}
- addUndefined := resolver.RequiresAddingImplicitUndefinedUnsafe(node, nil, nil) // skip checker lock - node builder will already have one
+ addUndefined := resolver.RequiresAddingImplicitUndefinedUnsafe(node, nil, node.Parent) // skip checker lock - node builder will already have one
if !addUndefined && node.Initializer() != nil {
return createExpressionError(node.Initializer())
}
diff --git a/internal/transformers/declarations/transform.go b/internal/transformers/declarations/transform.go
index 65ea3ed6f09..86da2df7fb7 100644
--- a/internal/transformers/declarations/transform.go
+++ b/internal/transformers/declarations/transform.go
@@ -1127,8 +1127,7 @@ func (tx *DeclarationTransformer) transformMethodDeclaration(input *ast.MethodDe
} else if ast.IsPrivateIdentifier(input.Name()) {
return nil
} else {
- return tx.Factory().UpdateMethodDeclaration(
- input,
+ result := tx.Factory().NewMethodDeclaration(
tx.ensureModifiers(input.AsNode()),
nil,
input.Name(),
@@ -1139,6 +1138,9 @@ func (tx *DeclarationTransformer) transformMethodDeclaration(input *ast.MethodDe
nil,
nil,
)
+ tx.EmitContext().SetOriginal(result, input.AsNode())
+ tx.preserveJsDoc(result, input.AsNode())
+ return result
}
}
diff --git a/internal/transformers/estransforms/using.go b/internal/transformers/estransforms/using.go
index 8b7d769c490..5461b3f1810 100644
--- a/internal/transformers/estransforms/using.go
+++ b/internal/transformers/estransforms/using.go
@@ -587,6 +587,7 @@ func (tx *usingDeclarationTransformer) hoistInitializedVariable(node *ast.Variab
var target *ast.Expression
if ast.IsIdentifier(node.Name()) {
target = node.Name().Clone(tx.Factory())
+ target.Loc = core.UndefinedTextRange()
tx.EmitContext().SetEmitFlags(target, tx.EmitContext().EmitFlags(target) & ^(printer.EFLocalName|printer.EFExportName))
} else {
target = transformers.ConvertBindingPatternToAssignmentPattern(tx.EmitContext(), node.Name().AsBindingPattern())
diff --git a/internal/transformers/tstransforms/runtimesyntax.go b/internal/transformers/tstransforms/runtimesyntax.go
index eb0746b09d6..a3516893d2a 100644
--- a/internal/transformers/tstransforms/runtimesyntax.go
+++ b/internal/transformers/tstransforms/runtimesyntax.go
@@ -220,7 +220,15 @@ func (tx *RuntimeSyntaxTransformer) getNamespaceContainerName(node *ast.Node) *a
// Gets an expression used to refer to an export of a namespace or a member of an enum by property name.
func (tx *RuntimeSyntaxTransformer) getNamespaceQualifiedProperty(ns *ast.IdentifierNode, name *ast.IdentifierNode) *ast.Expression {
- return tx.Factory().GetNamespaceMemberName(ns, name, printer.NameOptions{AllowSourceMaps: true})
+ location := name
+ if !ast.NodeIsSynthesized(name) {
+ name = name.Clone(tx.Factory())
+ name.Loc = core.UndefinedTextRange()
+ }
+ qualifiedName := tx.Factory().NewPropertyAccessExpression(ns, nil /*questionDotToken*/, name, ast.NodeFlagsNone)
+ tx.EmitContext().AssignCommentAndSourceMapRanges(qualifiedName, location)
+ tx.EmitContext().AddEmitFlags(qualifiedName, printer.EFNoComments)
+ return qualifiedName
}
// Gets an expression used to refer to an export of a namespace or a member of an enum by indexed access.
@@ -233,7 +241,8 @@ func (tx *RuntimeSyntaxTransformer) getNamespaceQualifiedElement(ns *ast.Identif
// Gets an expression used within the provided node's container for any exported references.
func (tx *RuntimeSyntaxTransformer) getExportQualifiedReferenceToDeclaration(node *ast.Declaration) *ast.Expression {
if tx.isExportOfNamespace(node.AsNode()) {
- return tx.Factory().GetExternalModuleOrNamespaceExportName(tx.getNamespaceContainerName(tx.currentNamespace), node, false /*allowComments*/, true /*allowSourceMaps*/)
+ name := tx.Factory().GetDeclarationNameEx(node.AsNode(), printer.NameOptions{AllowSourceMaps: true})
+ return tx.getNamespaceQualifiedProperty(tx.getNamespaceContainerName(tx.currentNamespace), name)
}
return tx.Factory().GetDeclarationNameEx(node.AsNode(), printer.NameOptions{AllowSourceMaps: true})
}
@@ -571,7 +580,7 @@ func (tx *RuntimeSyntaxTransformer) visitImportEqualsDeclaration(node *ast.Impor
return varStatement
} else {
// exports.${name} = ${moduleReference};
- statement := tx.createExportStatement(node.Name(), moduleReference, node.Loc, node.Loc, node.AsNode())
+ statement := tx.createExportStatement(node.Name(), moduleReference, node.Loc, node.AsNode())
statement.Loc = node.Loc
return statement
}
@@ -935,7 +944,7 @@ func (tx *RuntimeSyntaxTransformer) visitExpressionIdentifier(node *ast.Identifi
memberName := node.Clone(tx.Factory())
tx.EmitContext().SetEmitFlags(memberName, printer.EFNoComments|printer.EFNoSourceMap)
- expression := tx.Factory().GetNamespaceMemberName(containerName, memberName, printer.NameOptions{AllowSourceMaps: true})
+ expression := tx.getNamespaceQualifiedProperty(containerName, memberName)
tx.EmitContext().AssignCommentAndSourceMapRanges(expression, node.AsNode())
return expression
}
@@ -944,7 +953,10 @@ func (tx *RuntimeSyntaxTransformer) visitExpressionIdentifier(node *ast.Identifi
}
func (tx *RuntimeSyntaxTransformer) createExportStatementForDeclaration(node *ast.Declaration) *ast.Statement {
- exportName := tx.Factory().GetExternalModuleOrNamespaceExportName(tx.getNamespaceContainerName(tx.currentNamespace), node, false /*allowComments*/, true /*allowSourceMaps*/)
+ exportName := tx.getNamespaceQualifiedProperty(
+ tx.getNamespaceContainerName(tx.currentNamespace),
+ tx.Factory().GetDeclarationNameEx(node, printer.NameOptions{AllowSourceMaps: true}),
+ )
localName := tx.Factory().GetLocalName(node)
expression := tx.Factory().NewAssignmentExpression(exportName, localName)
exportAssignmentSourceMapRange := node.Loc
@@ -959,16 +971,9 @@ func (tx *RuntimeSyntaxTransformer) createExportStatementForDeclaration(node *as
return statement
}
-func (tx *RuntimeSyntaxTransformer) createExportAssignment(name *ast.IdentifierNode, expression *ast.Expression, exportAssignmentSourceMapRange core.TextRange, original *ast.Node) *ast.Expression {
+func (tx *RuntimeSyntaxTransformer) createExportStatement(name *ast.IdentifierNode, expression *ast.Expression, exportStatementSourceMapRange core.TextRange, original *ast.Node) *ast.Statement {
exportName := tx.getNamespaceQualifiedProperty(tx.getNamespaceContainerName(tx.currentNamespace), name)
- exportAssignment := tx.Factory().NewAssignmentExpression(exportName, expression)
- tx.EmitContext().SetOriginal(exportAssignment, original)
- tx.EmitContext().SetSourceMapRange(exportAssignment, exportAssignmentSourceMapRange)
- return exportAssignment
-}
-
-func (tx *RuntimeSyntaxTransformer) createExportStatement(name *ast.IdentifierNode, expression *ast.Expression, exportAssignmentSourceMapRange core.TextRange, exportStatementSourceMapRange core.TextRange, original *ast.Node) *ast.Statement {
- exportStatement := tx.Factory().NewExpressionStatement(tx.createExportAssignment(name, expression, exportAssignmentSourceMapRange, original))
+ exportStatement := tx.Factory().NewExpressionStatement(tx.Factory().NewAssignmentExpression(exportName, expression))
tx.EmitContext().SetOriginal(exportStatement, original)
tx.EmitContext().SetSourceMapRange(exportStatement, exportStatementSourceMapRange)
return exportStatement
diff --git a/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.errors.txt b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.errors.txt
new file mode 100644
index 00000000000..53837a27239
--- /dev/null
+++ b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.errors.txt
@@ -0,0 +1,36 @@
+aliased.ts(4,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
+shadowed.ts(6,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
+
+
+==== global.ts (0 errors) ====
+ export const globalSymbol = {
+ [Symbol.iterator]: 1,
+ };
+
+==== shadowed.ts (1 errors) ====
+ const Symbol = {
+ iterator: "iterator",
+ };
+
+ export const shadowedSymbol = {
+ [Symbol.iterator]: 1,
+ ~~~~~~~~~~~~~~~~~
+!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
+!!! related TS9027 shadowed.ts:5:14: Add a type annotation to the variable shadowedSymbol.
+ };
+
+==== symbols.ts (0 errors) ====
+ export const symbolValue = {
+ iterator: "iterator",
+ };
+
+==== aliased.ts (1 errors) ====
+ import { symbolValue as Symbol } from "./symbols.js";
+
+ export const aliasedSymbol = {
+ [Symbol.iterator]: 1,
+ ~~~~~~~~~~~~~~~~~
+!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
+!!! related TS9027 aliased.ts:3:14: Add a type annotation to the variable aliasedSymbol.
+ };
+
\ No newline at end of file
diff --git a/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.js b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.js
new file mode 100644
index 00000000000..4cc87b45fda
--- /dev/null
+++ b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.js
@@ -0,0 +1,39 @@
+//// [tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts] ////
+
+//// [global.ts]
+export const globalSymbol = {
+ [Symbol.iterator]: 1,
+};
+
+//// [shadowed.ts]
+const Symbol = {
+ iterator: "iterator",
+};
+
+export const shadowedSymbol = {
+ [Symbol.iterator]: 1,
+};
+
+//// [symbols.ts]
+export const symbolValue = {
+ iterator: "iterator",
+};
+
+//// [aliased.ts]
+import { symbolValue as Symbol } from "./symbols.js";
+
+export const aliasedSymbol = {
+ [Symbol.iterator]: 1,
+};
+
+
+
+
+//// [global.d.ts]
+export declare const globalSymbol: {
+ [Symbol.iterator]: number;
+};
+//// [symbols.d.ts]
+export declare const symbolValue: {
+ iterator: string;
+};
diff --git a/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.symbols b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.symbols
new file mode 100644
index 00000000000..9de035592fc
--- /dev/null
+++ b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.symbols
@@ -0,0 +1,59 @@
+//// [tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts] ////
+
+=== global.ts ===
+export const globalSymbol = {
+>globalSymbol : Symbol(globalSymbol, Decl(global.ts, 0, 12))
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(global.ts, 0, 29))
+>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
+>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+
+};
+
+=== shadowed.ts ===
+const Symbol = {
+>Symbol : Symbol(Symbol, Decl(shadowed.ts, 0, 5))
+
+ iterator: "iterator",
+>iterator : Symbol(iterator, Decl(shadowed.ts, 0, 16))
+
+};
+
+export const shadowedSymbol = {
+>shadowedSymbol : Symbol(shadowedSymbol, Decl(shadowed.ts, 4, 12))
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(shadowed.ts, 4, 31))
+>Symbol.iterator : Symbol(iterator, Decl(shadowed.ts, 0, 16))
+>Symbol : Symbol(Symbol, Decl(shadowed.ts, 0, 5))
+>iterator : Symbol(iterator, Decl(shadowed.ts, 0, 16))
+
+};
+
+=== symbols.ts ===
+export const symbolValue = {
+>symbolValue : Symbol(symbolValue, Decl(symbols.ts, 0, 12))
+
+ iterator: "iterator",
+>iterator : Symbol(iterator, Decl(symbols.ts, 0, 28))
+
+};
+
+=== aliased.ts ===
+import { symbolValue as Symbol } from "./symbols.js";
+>symbolValue : Symbol(Symbol, Decl(symbols.ts, 0, 12))
+>Symbol : Symbol(Symbol, Decl(aliased.ts, 0, 8))
+
+export const aliasedSymbol = {
+>aliasedSymbol : Symbol(aliasedSymbol, Decl(aliased.ts, 2, 12))
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(aliased.ts, 2, 30))
+>Symbol.iterator : Symbol(iterator, Decl(symbols.ts, 0, 28))
+>Symbol : Symbol(Symbol, Decl(aliased.ts, 0, 8))
+>iterator : Symbol(iterator, Decl(symbols.ts, 0, 28))
+
+};
+
diff --git a/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.types b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.types
new file mode 100644
index 00000000000..87b6b589880
--- /dev/null
+++ b/testdata/baselines/reference/compiler/isolatedDeclarationsShadowedSymbolComputedName.types
@@ -0,0 +1,69 @@
+//// [tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts] ////
+
+=== global.ts ===
+export const globalSymbol = {
+>globalSymbol : { [Symbol.iterator]: number; }
+>{ [Symbol.iterator]: 1,} : { [Symbol.iterator]: number; }
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : number
+>Symbol.iterator : unique symbol
+>Symbol : SymbolConstructor
+>iterator : unique symbol
+>1 : 1
+
+};
+
+=== shadowed.ts ===
+const Symbol = {
+>Symbol : { iterator: string; }
+>{ iterator: "iterator",} : { iterator: string; }
+
+ iterator: "iterator",
+>iterator : string
+>"iterator" : "iterator"
+
+};
+
+export const shadowedSymbol = {
+>shadowedSymbol : { [Symbol.iterator]: number; }
+>{ [Symbol.iterator]: 1,} : { [Symbol.iterator]: number; }
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : number
+>Symbol.iterator : string
+>Symbol : { iterator: string; }
+>iterator : string
+>1 : 1
+
+};
+
+=== symbols.ts ===
+export const symbolValue = {
+>symbolValue : { iterator: string; }
+>{ iterator: "iterator",} : { iterator: string; }
+
+ iterator: "iterator",
+>iterator : string
+>"iterator" : "iterator"
+
+};
+
+=== aliased.ts ===
+import { symbolValue as Symbol } from "./symbols.js";
+>symbolValue : { iterator: string; }
+>Symbol : { iterator: string; }
+
+export const aliasedSymbol = {
+>aliasedSymbol : { [Symbol.iterator]: number; }
+>{ [Symbol.iterator]: 1,} : { [Symbol.iterator]: number; }
+
+ [Symbol.iterator]: 1,
+>[Symbol.iterator] : number
+>Symbol.iterator : string
+>Symbol : { iterator: string; }
+>iterator : string
+>1 : 1
+
+};
+
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map
index 0c8dfb9e22a..5d3791edc47 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map
@@ -1,6 +1,6 @@
//// [a.d.ts.map]
-{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACZ,OAAO,CAAC,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;QACV,CAAC;MACZ;IACD,MAAM,CAAC,IAAI,QAEV;CACJ"}
-//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IGRlY2xhcmUgY2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHg6IHsNCiAgICAgICAgYTogbnVtYmVyOw0KICAgIH0pOiB7DQogICAgICAgIGI6IG51bWJlcjsNCiAgICB9Ow0KICAgIHN0YXRpYyBtYWtlKCk6IEZvbzsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWEuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxHQUFHO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRTtRQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBQztRQUNWLENBQUM7TUFDWjtJQUNELE1BQU0sQ0FBQyxJQUFJLFFBRVY7Q0FDSiJ9,ZXhwb3J0IGNsYXNzIEZvbyB7CiAgICBkb1RoaW5nKHg6IHthOiBudW1iZXJ9KSB7CiAgICAgICAgcmV0dXJuIHtiOiB4LmF9OwogICAgfQogICAgc3RhdGljIG1ha2UoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBGb28oKTsKICAgIH0KfQ==
+{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACZ,OAAO,CAAC,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;QACV,CAAC;;IAEb,MAAM,CAAC,IAAI;CAGd"}
+//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IGRlY2xhcmUgY2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHg6IHsNCiAgICAgICAgYTogbnVtYmVyOw0KICAgIH0pOiB7DQogICAgICAgIGI6IG51bWJlcjsNCiAgICB9Ow0KICAgIHN0YXRpYyBtYWtlKCk6IEZvbzsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWEuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxHQUFHO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRTtRQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBQztRQUNWLENBQUM7O0lBRWIsTUFBTSxDQUFDLElBQUk7Q0FHZCJ9,ZXhwb3J0IGNsYXNzIEZvbyB7CiAgICBkb1RoaW5nKHg6IHthOiBudW1iZXJ9KSB7CiAgICAgICAgcmV0dXJuIHtiOiB4LmF9OwogICAgfQogICAgc3RhdGljIG1ha2UoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBGb28oKTsKICAgIH0KfQ==
//// [index.d.ts.map]
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,CAAC,KAAY,CAAC;AAGpB,eAAO,IAAI,CAAC;;CAAqB,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC"}
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map.diff b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map.diff
index 64b0b178893..266b275585d 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.map.diff
@@ -4,8 +4,8 @@
//// [a.d.ts.map]
-{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACZ,OAAO,CAAC,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;;;IAGtB,MAAM,CAAC,IAAI;CAGd"}
-//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IGRlY2xhcmUgY2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHg6IHsNCiAgICAgICAgYTogbnVtYmVyOw0KICAgIH0pOiB7DQogICAgICAgIGI6IG51bWJlcjsNCiAgICB9Ow0KICAgIHN0YXRpYyBtYWtlKCk6IEZvbzsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWEuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxHQUFHO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRTtRQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBQzs7O0lBR3RCLE1BQU0sQ0FBQyxJQUFJO0NBR2QifQ==,ZXhwb3J0IGNsYXNzIEZvbyB7CiAgICBkb1RoaW5nKHg6IHthOiBudW1iZXJ9KSB7CiAgICAgICAgcmV0dXJuIHtiOiB4LmF9OwogICAgfQogICAgc3RhdGljIG1ha2UoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBGb28oKTsKICAgIH0KfQ==
-+{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACZ,OAAO,CAAC,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;QACV,CAAC;MACZ;IACD,MAAM,CAAC,IAAI,QAEV;CACJ"}
-+//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IGRlY2xhcmUgY2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHg6IHsNCiAgICAgICAgYTogbnVtYmVyOw0KICAgIH0pOiB7DQogICAgICAgIGI6IG51bWJlcjsNCiAgICB9Ow0KICAgIHN0YXRpYyBtYWtlKCk6IEZvbzsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWEuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxHQUFHO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRTtRQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBQztRQUNWLENBQUM7TUFDWjtJQUNELE1BQU0sQ0FBQyxJQUFJLFFBRVY7Q0FDSiJ9,ZXhwb3J0IGNsYXNzIEZvbyB7CiAgICBkb1RoaW5nKHg6IHthOiBudW1iZXJ9KSB7CiAgICAgICAgcmV0dXJuIHtiOiB4LmF9OwogICAgfQogICAgc3RhdGljIG1ha2UoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBGb28oKTsKICAgIH0KfQ==
++{"version":3,"file":"a.d.ts","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACZ,OAAO,CAAC,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;QACV,CAAC;;IAEb,MAAM,CAAC,IAAI;CAGd"}
++//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IGRlY2xhcmUgY2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHg6IHsNCiAgICAgICAgYTogbnVtYmVyOw0KICAgIH0pOiB7DQogICAgICAgIGI6IG51bWJlcjsNCiAgICB9Ow0KICAgIHN0YXRpYyBtYWtlKCk6IEZvbzsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWEuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxHQUFHO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRTtRQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBQztRQUNWLENBQUM7O0lBRWIsTUFBTSxDQUFDLElBQUk7Q0FHZCJ9,ZXhwb3J0IGNsYXNzIEZvbyB7CiAgICBkb1RoaW5nKHg6IHthOiBudW1iZXJ9KSB7CiAgICAgICAgcmV0dXJuIHtiOiB4LmF9OwogICAgfQogICAgc3RhdGljIG1ha2UoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBGb28oKTsKICAgIH0KfQ==
//// [index.d.ts.map]
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,CAAC,KAAY,CAAC;AAGpB,eAAO,IAAI,CAAC;;CAAqB,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC"}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt
index d865f22d6f0..1a3296d1e80 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt
@@ -71,36 +71,28 @@ sourceFile:a.ts
2 >Emitted(5, 10) Source(3, 18) + SourceIndex(0)
---
>>> };
-1 >^^^^^^
-2 > ^^^^^^^^^^^^^^^^^^->
-1 >: x.a};
- > }
-1 >Emitted(6, 7) Source(4, 6) + SourceIndex(0)
----
>>> static make(): Foo;
-1->^^^^
+1 >^^^^
2 > ^^^^^^
3 > ^
4 > ^^^^
-5 > ^^^^^^^^
-1->
+1 >: x.a};
+ > }
>
2 > static
3 >
4 > make
-5 > () {
- > return new Foo();
- > }
-1->Emitted(7, 5) Source(5, 5) + SourceIndex(0)
+1 >Emitted(7, 5) Source(5, 5) + SourceIndex(0)
2 >Emitted(7, 11) Source(5, 11) + SourceIndex(0)
3 >Emitted(7, 12) Source(5, 12) + SourceIndex(0)
4 >Emitted(7, 16) Source(5, 16) + SourceIndex(0)
-5 >Emitted(7, 24) Source(7, 6) + SourceIndex(0)
---
>>>}
1 >^
2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-1 >
+1 >() {
+ > return new Foo();
+ > }
>}
1 >Emitted(8, 2) Source(8, 2) + SourceIndex(0)
---
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt.diff
index 07457dbe20c..2490c3b3607 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.sourcemap.txt.diff
@@ -13,42 +13,22 @@
+2 >Emitted(5, 10) Source(3, 18) + SourceIndex(0)
+---
>>> };
-+1 >^^^^^^
-+2 > ^^^^^^^^^^^^^^^^^^->
-+1 >: x.a};
-+ > }
-+1 >Emitted(6, 7) Source(4, 6) + SourceIndex(0)
-+---
>>> static make(): Foo;
- 1->^^^^
+-1->^^^^
++1 >^^^^
2 > ^^^^^^
3 > ^
4 > ^^^^
-1->) {
- > return {b: x.a};
-- > }
-+5 > ^^^^^^^^
-+1->
++1 >: x.a};
+ > }
>
2 > static
3 >
4 > make
-+5 > () {
-+ > return new Foo();
-+ > }
- 1->Emitted(7, 5) Source(5, 5) + SourceIndex(0)
+-1->Emitted(7, 5) Source(5, 5) + SourceIndex(0)
++1 >Emitted(7, 5) Source(5, 5) + SourceIndex(0)
2 >Emitted(7, 11) Source(5, 11) + SourceIndex(0)
3 >Emitted(7, 12) Source(5, 12) + SourceIndex(0)
- 4 >Emitted(7, 16) Source(5, 16) + SourceIndex(0)
-+5 >Emitted(7, 24) Source(7, 6) + SourceIndex(0)
- ---
- >>>}
- 1 >^
- 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >() {
-- > return new Foo();
-- > }
-+1 >
- >}
- 1 >Emitted(8, 2) Source(8, 2) + SourceIndex(0)
- ---
\ No newline at end of file
+ 4 >Emitted(7, 16) Source(5, 16) + SourceIndex(0)
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map
index a339cf4e686..792d34a6909 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map
@@ -1,6 +1,6 @@
//// [Element.js.map]
-{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,QAAA,SAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,QAAA,aAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxRQUFBLFNBQVMsWUFFeEIsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFXO1FBRXJDLE9BQU8sRUFDTixDQUFBO0lBQ0wsQ0FBQztJQUplLFFBQUEsYUFBYSxnQkFJNUIsQ0FBQTtBQUNMLENBQUMsRUFWZ0IsT0FBTyxhQUFQLE9BQU8sR0FBUCxPQUFPLFFBVXZCO0FBRVUsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUVqRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyJ9,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
+{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sYUFBUCxPQUFPLEdBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
//// [test.js.map]
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.tsx"],"names":[],"mappings":";;AAAA,uCAAmC;AACnC,IAAI,aAAa,GAAG,iBAAO,CAAC,aAAa,CAAC;AAC1C,IAAI,CAIH,CAAC;AAEF,MAAM,CAAC;IACN,IAAI;QACH,OAAO;YACN,wBAAM,OAAO,EAAC,YAAY,GAAQ;YAClC,wBAAM,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAS;SAC9B,CAAC;IACH,CAAC;CACD"}
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map.diff b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map.diff
index 24940632cf4..49330d27599 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.js.map.diff
@@ -4,8 +4,8 @@
//// [Element.js.map]
-{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,uBAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sdUJBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
-+{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,QAAA,SAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,QAAA,aAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxRQUFBLFNBQVMsWUFFeEIsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFXO1FBRXJDLE9BQU8sRUFDTixDQUFBO0lBQ0wsQ0FBQztJQUplLFFBQUEsYUFBYSxnQkFJNUIsQ0FBQTtBQUNMLENBQUMsRUFWZ0IsT0FBTyxhQUFQLE9BQU8sR0FBUCxPQUFPLFFBVXZCO0FBRVUsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUVqRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyJ9,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
++{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sYUFBUCxPQUFPLEdBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
//// [test.js.map]
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.tsx"],"names":[],"mappings":";;AAAA,uCAAmC;AACnC,IAAI,aAAa,GAAG,iBAAO,CAAC,aAAa,CAAC;AAC1C,IAAI,CAIH,CAAC;AAEF,MAAM,CAAC;IACN,IAAI;QACH,OAAO;YACN,wBAAM,OAAO,EAAC,YAAY,GAAQ;YAClC,wBAAM,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAS;SAC9B,CAAC;IACH,CAAC;CACD"}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt
index c2add73ca13..aa9b391f0ff 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt
@@ -118,23 +118,20 @@ sourceFile:Element.ts
---
>>> Element.isElement = isElement;
1->^^^^
-2 > ^^^^^^^^
-3 > ^^^^^^^^^
-4 > ^^^^^^^^^^^^
-5 > ^
-6 > ^->
+2 > ^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^
+4 > ^
+5 > ^->
1->
-2 >
-3 > isElement
-4 > (el: any): el is JSX.Element {
+2 > isElement
+3 > (el: any): el is JSX.Element {
> return el.markAsChildOfRootElement !== undefined;
> }
-5 >
+4 >
1->Emitted(9, 5) Source(14, 21) + SourceIndex(0)
-2 >Emitted(9, 13) Source(14, 21) + SourceIndex(0)
-3 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
-4 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
-5 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
+2 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
+3 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
+4 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
---
>>> function createElement(args) {
1->^^^^
@@ -184,25 +181,22 @@ sourceFile:Element.ts
---
>>> Element.createElement = createElement;
1->^^^^
-2 > ^^^^^^^^
-3 > ^^^^^^^^^^^^^
-4 > ^^^^^^^^^^^^^^^^
-5 > ^
-6 > ^^^^^^^->
+2 > ^^^^^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^^^^^
+4 > ^
+5 > ^^^^^^^->
1->
-2 >
-3 > createElement
-4 > (args: any[]) {
+2 > createElement
+3 > (args: any[]) {
>
> return {
> }
> }
-5 >
+4 >
1->Emitted(13, 5) Source(18, 21) + SourceIndex(0)
-2 >Emitted(13, 13) Source(18, 21) + SourceIndex(0)
-3 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
-4 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
-5 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
+2 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
+3 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
+4 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
---
>>>})(Element || (exports.Element = Element = {}));
1->
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt.diff
index f0e93ae1449..51b0f88c66f 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryIdentifier.sourcemap.txt.diff
@@ -1,75 +1,6 @@
--- old.jsxFactoryIdentifier.sourcemap.txt
+++ new.jsxFactoryIdentifier.sourcemap.txt
-@@= skipped -117, +117 lines =@@
- ---
- >>> Element.isElement = isElement;
- 1->^^^^
--2 > ^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^
--4 > ^
--5 > ^->
-+2 > ^^^^^^^^
-+3 > ^^^^^^^^^
-+4 > ^^^^^^^^^^^^
-+5 > ^
-+6 > ^->
- 1->
--2 > isElement
--3 > (el: any): el is JSX.Element {
-+2 >
-+3 > isElement
-+4 > (el: any): el is JSX.Element {
- > return el.markAsChildOfRootElement !== undefined;
- > }
--4 >
-+5 >
- 1->Emitted(9, 5) Source(14, 21) + SourceIndex(0)
--2 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
--3 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
--4 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
-+2 >Emitted(9, 13) Source(14, 21) + SourceIndex(0)
-+3 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
-+4 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
-+5 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
- ---
- >>> function createElement(args) {
- 1->^^^^
-@@= skipped -63, +66 lines =@@
- ---
- >>> Element.createElement = createElement;
- 1->^^^^
--2 > ^^^^^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^^^^^
--4 > ^
--5 > ^^^^^^^->
-+2 > ^^^^^^^^
-+3 > ^^^^^^^^^^^^^
-+4 > ^^^^^^^^^^^^^^^^
-+5 > ^
-+6 > ^^^^^^^->
- 1->
--2 > createElement
--3 > (args: any[]) {
-+2 >
-+3 > createElement
-+4 > (args: any[]) {
- >
- > return {
- > }
- > }
--4 >
-+5 >
- 1->Emitted(13, 5) Source(18, 21) + SourceIndex(0)
--2 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
--3 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
--4 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
-+2 >Emitted(13, 13) Source(18, 21) + SourceIndex(0)
-+3 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
-+4 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
-+5 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
- ---
- >>>})(Element || (exports.Element = Element = {}));
- 1->
+@@= skipped -202, +202 lines =@@
2 >^
3 > ^^
4 > ^^^^^^^
@@ -96,7 +27,7 @@
> export function isElement(el: any): el is JSX.Element {
> return el.markAsChildOfRootElement !== undefined;
> }
-@@= skipped -47, +54 lines =@@
+@@= skipped -25, +29 lines =@@
2 >Emitted(14, 2) Source(23, 2) + SourceIndex(0)
3 >Emitted(14, 4) Source(13, 18) + SourceIndex(0)
4 >Emitted(14, 11) Source(13, 25) + SourceIndex(0)
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map
index 1b2ee280f6d..9b614c909b8 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map
@@ -1,6 +1,6 @@
//// [Element.js.map]
-{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,QAAA,SAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,QAAA,aAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxRQUFBLFNBQVMsWUFFeEIsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFXO1FBRXJDLE9BQU8sRUFDTixDQUFBO0lBQ0wsQ0FBQztJQUplLFFBQUEsYUFBYSxnQkFJNUIsQ0FBQTtBQUNMLENBQUMsRUFWZ0IsT0FBTyxhQUFQLE9BQU8sR0FBUCxPQUFPLFFBVXZCO0FBRVUsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUVqRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyJ9,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
+{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sYUFBUCxPQUFPLEdBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
//// [test.js.map]
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.tsx"],"names":[],"mappings":";;AAAA,uCAAmC;AAEnC,IAAI,CAIH,CAAC;AAEF,MAAM,CAAC;IACN,IAAI;QACH,OAAO;YACN,0CAAM,OAAO,EAAC,YAAY,GAAQ;YAClC,0CAAM,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAS;SAC9B,CAAC;IACH,CAAC;CACD"}
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map.diff b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map.diff
index bc1e2142135..46e670e7632 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.js.map.diff
@@ -4,8 +4,8 @@
//// [Element.js.map]
-{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,uBAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sdUJBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
-+{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,QAAA,SAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,QAAA,aAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxRQUFBLFNBQVMsWUFFeEIsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFXO1FBRXJDLE9BQU8sRUFDTixDQUFBO0lBQ0wsQ0FBQztJQUplLFFBQUEsYUFBYSxnQkFJNUIsQ0FBQTtBQUNMLENBQUMsRUFWZ0IsT0FBTyxhQUFQLE9BQU8sR0FBUCxPQUFPLFFBVXZCO0FBRVUsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUVqRCxTQUFTLFdBQVcsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyJ9,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
++{"version":3,"file":"Element.js","sourceRoot":"","sources":["Element.ts"],"names":[],"mappings":";;;AAYA,IAAiB,OAAO,CAUvB;AAVD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,EAAO;QAC7B,OAAO,EAAE,CAAC,wBAAwB,KAAK,SAAS,CAAC;IACrD,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED,SAAgB,aAAa,CAAC,IAAW;QAErC,OAAO,EACN,CAAA;IACL,CAAC;IAJe,qBAAa,gBAI5B,CAAA;AACL,CAAC,EAVgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAUvB;AAEU,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAEjD,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGV4cG9ydHMuRWxlbWVudCA9IHZvaWQgMDsNCnZhciBFbGVtZW50Ow0KKGZ1bmN0aW9uIChFbGVtZW50KSB7DQogICAgZnVuY3Rpb24gaXNFbGVtZW50KGVsKSB7DQogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsNCiAgICB9DQogICAgRWxlbWVudC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7DQogICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICB9DQogICAgRWxlbWVudC5jcmVhdGVFbGVtZW50ID0gY3JlYXRlRWxlbWVudDsNCn0pKEVsZW1lbnQgfHwgKGV4cG9ydHMuRWxlbWVudCA9IEVsZW1lbnQgPSB7fSkpOw0KZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50Ow0KZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dCkgew0KICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnQuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsSUFBaUIsT0FBTyxDQVV2QjtBQVZELFdBQWlCLE9BQU87SUFDcEIsU0FBZ0IsU0FBUyxDQUFDLEVBQU87UUFDN0IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFGZSxpQkFBUyxZQUV4QixDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVc7UUFFckMsT0FBTyxFQUNOLENBQUE7SUFDTCxDQUFDO0lBSmUscUJBQWEsZ0JBSTVCLENBQUE7QUFDTCxDQUFDLEVBVmdCLE9BQU8sYUFBUCxPQUFPLEdBQVAsT0FBTyxRQVV2QjtBQUVVLFFBQUEsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFFakQsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKICAgIGludGVyZmFjZSBFbGVtZW50IHsKICAgICAgICBuYW1lOiBzdHJpbmc7CiAgICAgICAgaXNJbnRyaW5zaWM6IGJvb2xlYW47CiAgICAgICAgaXNDdXN0b21FbGVtZW50OiBib29sZWFuOwogICAgICAgIHRvU3RyaW5nKHJlbmRlcklkPzogbnVtYmVyKTogc3RyaW5nOwogICAgICAgIGJpbmRET00ocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcmVzZXRDb21wb25lbnQoKTogdm9pZDsKICAgICAgICBpbnN0YW50aWF0ZUNvbXBvbmVudHMocmVuZGVySWQ/OiBudW1iZXIpOiBudW1iZXI7CiAgICAgICAgcHJvcHM6IGFueTsKICAgIH0KfQpleHBvcnQgbmFtZXNwYWNlIEVsZW1lbnQgewogICAgZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudChlbDogYW55KTogZWwgaXMgSlNYLkVsZW1lbnQgewogICAgICAgIHJldHVybiBlbC5tYXJrQXNDaGlsZE9mUm9vdEVsZW1lbnQgIT09IHVuZGVmaW5lZDsKICAgIH0KCiAgICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChhcmdzOiBhbnlbXSkgewoKICAgICAgICByZXR1cm4gewogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGxldCBjcmVhdGVFbGVtZW50ID0gRWxlbWVudC5jcmVhdGVFbGVtZW50OwoKZnVuY3Rpb24gdG9DYW1lbENhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHsKICAgIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnN1YnN0cmluZygxKTsKfQo=
//// [test.js.map]
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.tsx"],"names":[],"mappings":";;AAAA,uCAAmC;AAEnC,IAAI,CAIH,CAAC;AAEF,MAAM,CAAC;IACN,IAAI;QACH,OAAO;YACN,0CAAM,OAAO,EAAC,YAAY,GAAQ;YAClC,0CAAM,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,GAAS;SAC9B,CAAC;IACH,CAAC;CACD"}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt
index cacf3cd045d..7318a14e066 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt
@@ -118,23 +118,20 @@ sourceFile:Element.ts
---
>>> Element.isElement = isElement;
1->^^^^
-2 > ^^^^^^^^
-3 > ^^^^^^^^^
-4 > ^^^^^^^^^^^^
-5 > ^
-6 > ^->
+2 > ^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^
+4 > ^
+5 > ^->
1->
-2 >
-3 > isElement
-4 > (el: any): el is JSX.Element {
+2 > isElement
+3 > (el: any): el is JSX.Element {
> return el.markAsChildOfRootElement !== undefined;
> }
-5 >
+4 >
1->Emitted(9, 5) Source(14, 21) + SourceIndex(0)
-2 >Emitted(9, 13) Source(14, 21) + SourceIndex(0)
-3 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
-4 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
-5 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
+2 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
+3 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
+4 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
---
>>> function createElement(args) {
1->^^^^
@@ -184,25 +181,22 @@ sourceFile:Element.ts
---
>>> Element.createElement = createElement;
1->^^^^
-2 > ^^^^^^^^
-3 > ^^^^^^^^^^^^^
-4 > ^^^^^^^^^^^^^^^^
-5 > ^
-6 > ^^^^^^^->
+2 > ^^^^^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^^^^^
+4 > ^
+5 > ^^^^^^^->
1->
-2 >
-3 > createElement
-4 > (args: any[]) {
+2 > createElement
+3 > (args: any[]) {
>
> return {
> }
> }
-5 >
+4 >
1->Emitted(13, 5) Source(18, 21) + SourceIndex(0)
-2 >Emitted(13, 13) Source(18, 21) + SourceIndex(0)
-3 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
-4 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
-5 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
+2 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
+3 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
+4 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
---
>>>})(Element || (exports.Element = Element = {}));
1->
diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt.diff
index 2a8521ce660..4686100e747 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedName.sourcemap.txt.diff
@@ -1,75 +1,6 @@
--- old.jsxFactoryQualifiedName.sourcemap.txt
+++ new.jsxFactoryQualifiedName.sourcemap.txt
-@@= skipped -117, +117 lines =@@
- ---
- >>> Element.isElement = isElement;
- 1->^^^^
--2 > ^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^
--4 > ^
--5 > ^->
-+2 > ^^^^^^^^
-+3 > ^^^^^^^^^
-+4 > ^^^^^^^^^^^^
-+5 > ^
-+6 > ^->
- 1->
--2 > isElement
--3 > (el: any): el is JSX.Element {
-+2 >
-+3 > isElement
-+4 > (el: any): el is JSX.Element {
- > return el.markAsChildOfRootElement !== undefined;
- > }
--4 >
-+5 >
- 1->Emitted(9, 5) Source(14, 21) + SourceIndex(0)
--2 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
--3 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
--4 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
-+2 >Emitted(9, 13) Source(14, 21) + SourceIndex(0)
-+3 >Emitted(9, 22) Source(14, 30) + SourceIndex(0)
-+4 >Emitted(9, 34) Source(16, 6) + SourceIndex(0)
-+5 >Emitted(9, 35) Source(16, 6) + SourceIndex(0)
- ---
- >>> function createElement(args) {
- 1->^^^^
-@@= skipped -63, +66 lines =@@
- ---
- >>> Element.createElement = createElement;
- 1->^^^^
--2 > ^^^^^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^^^^^
--4 > ^
--5 > ^^^^^^^->
-+2 > ^^^^^^^^
-+3 > ^^^^^^^^^^^^^
-+4 > ^^^^^^^^^^^^^^^^
-+5 > ^
-+6 > ^^^^^^^->
- 1->
--2 > createElement
--3 > (args: any[]) {
-+2 >
-+3 > createElement
-+4 > (args: any[]) {
- >
- > return {
- > }
- > }
--4 >
-+5 >
- 1->Emitted(13, 5) Source(18, 21) + SourceIndex(0)
--2 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
--3 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
--4 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
-+2 >Emitted(13, 13) Source(18, 21) + SourceIndex(0)
-+3 >Emitted(13, 26) Source(18, 34) + SourceIndex(0)
-+4 >Emitted(13, 42) Source(22, 6) + SourceIndex(0)
-+5 >Emitted(13, 43) Source(22, 6) + SourceIndex(0)
- ---
- >>>})(Element || (exports.Element = Element = {}));
- 1->
+@@= skipped -202, +202 lines =@@
2 >^
3 > ^^
4 > ^^^^^^^
@@ -96,7 +27,7 @@
> export function isElement(el: any): el is JSX.Element {
> return el.markAsChildOfRootElement !== undefined;
> }
-@@= skipped -47, +54 lines =@@
+@@= skipped -25, +29 lines =@@
2 >Emitted(14, 2) Source(23, 2) + SourceIndex(0)
3 >Emitted(14, 4) Source(13, 18) + SourceIndex(0)
4 >Emitted(14, 11) Source(13, 25) + SourceIndex(0)
diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map
index 2d25dd88f1a..726293ed177 100644
--- a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map
+++ b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map
@@ -1,3 +1,3 @@
//// [recursiveClassReferenceTest.js.map]
-{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,0EAA0E;AA8B1E,IAAU,MAAM,CAUf;AAVD,WAAU,MAAM;IAAC,IAAA,OAAO,CAUvB;IAVgB,WAAA,OAAO;QAAC,IAAA,KAAK,CAU7B;QAVwB,WAAA,OAAK;YAAC,IAAA,IAAI,CAUlC;YAV8B,WAAA,IAAI;gBAClC,MAAa,eAAe;oBAEpB,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;oBAExB,GAAG,CAAC,KAA6B;wBAEvC,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD;gBARY,KAAA,eAAe,kBAQ3B,CAAA;YACF,CAAC,EAV8B,IAAI,GAAJ,QAAA,IAAI,KAAJ,QAAA,IAAI,QAUlC;QAAD,CAAC,EAVwB,KAAK,GAAL,QAAA,KAAK,KAAL,QAAA,KAAK,QAU7B;IAAD,CAAC,EAVgB,OAAO,GAAP,OAAA,OAAO,KAAP,OAAA,OAAO,QAUvB;AAAD,CAAC,EAVS,MAAM,KAAN,MAAM,QAUf;AAED,WAAU,MAAM;IAAC,IAAA,KAAK,CAoBrB;IApBgB,WAAA,KAAK;QAAC,IAAA,OAAO,CAoB7B;QApBsB,WAAA,OAAO;YAC7B,MAAa,UAAU;gBAEf,GAAG,CAAC,MAAyC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC,CAAA,CAAC;gBAGzF,YAAoB,SAAkC;oBAAlC,cAAS,GAAT,SAAS,CAAyB;oBAD9C,YAAO,GAAO,IAAI,CAAC;oBAEvB,aAAa;oBACb,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBAEM,UAAU;oBAChB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAEM,OAAO;gBAEd,CAAC;aAED;YAlBY,QAAA,UAAU,aAkBtB,CAAA;QACF,CAAC,EApBsB,OAAO,GAAP,MAAA,OAAO,KAAP,MAAA,OAAO,QAoB7B;IAAD,CAAC,EApBgB,KAAK,GAAL,OAAA,KAAK,KAAL,OAAA,KAAK,QAoBrB;AAAD,CAAC,EApBS,MAAM,KAAN,MAAM,QAoBf;AAGD,MAAM,YAAY;IAA2B,eAAe,KAAa,OAAO,IAAI,CAAC,CAAA,CAAC;CAAE;AASxF,WAAU,MAAM;IAAC,IAAA,KAAK,CAwBrB;IAxBgB,WAAA,KAAK;QAAC,IAAA,SAAS,CAwB/B;QAxBsB,WAAA,SAAS;YAAC,IAAA,SAAS,CAwBzC;YAxBgC,WAAA,SAAS;gBAEzC,MAAa,KAAK;oBACX,YAAoB,IAAW;oCAAX,IAAI;oBAAW,CAAC;oBACnC,KAAK;wBACX,OAAO,IAAI,CAAC;oBACb,CAAC;oBAEM,MAAM,CAAC,KAAY;wBACzB,OAAO,IAAI,KAAK,KAAK,CAAC;oBACvB,CAAC;oBAEM,OAAO,KAAY,OAAO,IAAI,CAAC,CAAC,CAAC;iBACxC;gBAXY,UAAA,KAAK,QAWjB,CAAA;gBAED,MAAa,IAAK,SAAQ,YAAY;oBAErC,aAAa;oBACN,eAAe;wBACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;iBAGD;gBARY,UAAA,IAAI,OAQhB,CAAA;YACF,CAAC,EAxBgC,SAAS,GAAT,UAAA,SAAS,KAAT,UAAA,SAAS,QAwBzC;QAAD,CAAC,EAxBsB,SAAS,GAAT,MAAA,SAAS,KAAT,MAAA,SAAS,QAwB/B;IAAD,CAAC,EAxBgB,KAAK,GAAL,OAAA,KAAK,KAAL,OAAA,KAAK,QAwBrB;AAAD,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXINCi8vIFNjZW5hcmlvIDI6IFRlc3QgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGwgd2l0aCBjYXN0IGFuZCAidGhpcyIgcGFyYW1ldGVyDQp2YXIgU2FtcGxlOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgQWN0aW9uczsNCiAgICAoZnVuY3Rpb24gKEFjdGlvbnMpIHsNCiAgICAgICAgdmFyIFRoaW5nOw0KICAgICAgICAoZnVuY3Rpb24gKFRoaW5nXzEpIHsNCiAgICAgICAgICAgIHZhciBGaW5kOw0KICAgICAgICAgICAgKGZ1bmN0aW9uIChGaW5kKSB7DQogICAgICAgICAgICAgICAgY2xhc3MgU3RhcnRGaW5kQWN0aW9uIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9DQogICAgICAgICAgICAgICAgICAgIHJ1bihUaGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRmluZC5TdGFydEZpbmRBY3Rpb24gPSBTdGFydEZpbmRBY3Rpb247DQogICAgICAgICAgICB9KShGaW5kID0gVGhpbmdfMS5GaW5kIHx8IChUaGluZ18xLkZpbmQgPSB7fSkpOw0KICAgICAgICB9KShUaGluZyA9IEFjdGlvbnMuVGhpbmcgfHwgKEFjdGlvbnMuVGhpbmcgPSB7fSkpOw0KICAgIH0pKEFjdGlvbnMgPSBTYW1wbGUuQWN0aW9ucyB8fCAoU2FtcGxlLkFjdGlvbnMgPSB7fSkpOw0KfSkoU2FtcGxlIHx8IChTYW1wbGUgPSB7fSkpOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgVGhpbmc7DQogICAgKGZ1bmN0aW9uIChUaGluZykgew0KICAgICAgICB2YXIgV2lkZ2V0czsNCiAgICAgICAgKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQogICAgICAgICAgICBjbGFzcyBGaW5kV2lkZ2V0IHsNCiAgICAgICAgICAgICAgICBnYXIocnVubmVyKSB7IGlmICh0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5uZXIodGhpcyk7DQogICAgICAgICAgICAgICAgfSB9DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoY29kZVRoaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZVRoaW5nID0gY29kZVRoaW5nOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbU5vZGUgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAxDQogICAgICAgICAgICAgICAgICAgIGNvZGVUaGluZy5hZGRXaWRnZXQoImFkZFdpZGdldCIsIHRoaXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnZXREb21Ob2RlKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVzdHJveSgpIHsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBXaWRnZXRzLkZpbmRXaWRnZXQgPSBGaW5kV2lkZ2V0Ow0KICAgICAgICB9KShXaWRnZXRzID0gVGhpbmcuV2lkZ2V0cyB8fCAoVGhpbmcuV2lkZ2V0cyA9IHt9KSk7DQogICAgfSkoVGhpbmcgPSBTYW1wbGUuVGhpbmcgfHwgKFNhbXBsZS5UaGluZyA9IHt9KSk7DQp9KShTYW1wbGUgfHwgKFNhbXBsZSA9IHt9KSk7DQpjbGFzcyBBYnN0cmFjdE1vZGUgew0KICAgIGdldEluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCn0NCihmdW5jdGlvbiAoU2FtcGxlKSB7DQogICAgdmFyIFRoaW5nOw0KICAgIChmdW5jdGlvbiAoVGhpbmcpIHsNCiAgICAgICAgdmFyIExhbmd1YWdlczsNCiAgICAgICAgKGZ1bmN0aW9uIChMYW5ndWFnZXMpIHsNCiAgICAgICAgICAgIHZhciBQbGFpblRleHQ7DQogICAgICAgICAgICAoZnVuY3Rpb24gKFBsYWluVGV4dCkgew0KICAgICAgICAgICAgICAgIGNsYXNzIFN0YXRlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IobW9kZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjbG9uZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVxdWFscyhvdGhlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IG90aGVyOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGdldE1vZGUoKSB7IHJldHVybiBtb2RlOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFBsYWluVGV4dC5TdGF0ZSA9IFN0YXRlOw0KICAgICAgICAgICAgICAgIGNsYXNzIE1vZGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGUgew0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAyDQogICAgICAgICAgICAgICAgICAgIGdldEluaXRpYWxTdGF0ZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGUoc2VsZik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgUGxhaW5UZXh0Lk1vZGUgPSBNb2RlOw0KICAgICAgICAgICAgfSkoUGxhaW5UZXh0ID0gTGFuZ3VhZ2VzLlBsYWluVGV4dCB8fCAoTGFuZ3VhZ2VzLlBsYWluVGV4dCA9IHt9KSk7DQogICAgICAgIH0pKExhbmd1YWdlcyA9IFRoaW5nLkxhbmd1YWdlcyB8fCAoVGhpbmcuTGFuZ3VhZ2VzID0ge30pKTsNCiAgICB9KShUaGluZyA9IFNhbXBsZS5UaGluZyB8fCAoU2FtcGxlLlRoaW5nID0ge30pKTsNCn0pKFNhbXBsZSB8fCAoU2FtcGxlID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlY3Vyc2l2ZUNsYXNzUmVmZXJlbmNlVGVzdC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMEVBQTBFO0FBOEIxRSxJQUFVLE1BQU0sQ0FVZjtBQVZELFdBQVUsTUFBTTtJQUFDLElBQUEsT0FBTyxDQVV2QjtJQVZnQixXQUFBLE9BQU87UUFBQyxJQUFBLEtBQUssQ0FVN0I7UUFWd0IsV0FBQSxPQUFLO1lBQUMsSUFBQSxJQUFJLENBVWxDO1lBVjhCLFdBQUEsSUFBSTtnQkFDbEMsTUFBYSxlQUFlO29CQUVwQixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUV4QixHQUFHLENBQUMsS0FBNkI7d0JBRXZDLE9BQU8sSUFBSSxDQUFDO29CQUNiLENBQUM7aUJBQ0Q7Z0JBUlksS0FBQSxlQUFlLGtCQVEzQixDQUFBO1lBQ0YsQ0FBQyxFQVY4QixJQUFJLEdBQUosUUFBQSxJQUFJLEtBQUosUUFBQSxJQUFJLFFBVWxDO1FBQUQsQ0FBQyxFQVZ3QixLQUFLLEdBQUwsUUFBQSxLQUFLLEtBQUwsUUFBQSxLQUFLLFFBVTdCO0lBQUQsQ0FBQyxFQVZnQixPQUFPLEdBQVAsT0FBQSxPQUFPLEtBQVAsT0FBQSxPQUFPLFFBVXZCO0FBQUQsQ0FBQyxFQVZTLE1BQU0sS0FBTixNQUFNLFFBVWY7QUFFRCxXQUFVLE1BQU07SUFBQyxJQUFBLEtBQUssQ0FvQnJCO0lBcEJnQixXQUFBLEtBQUs7UUFBQyxJQUFBLE9BQU8sQ0FvQjdCO1FBcEJzQixXQUFBLE9BQU87WUFDN0IsTUFBYSxVQUFVO2dCQUVmLEdBQUcsQ0FBQyxNQUF5QyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQUEsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFBLENBQUM7Z0JBR3pGLFlBQW9CLFNBQWtDO29CQUFsQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtvQkFEOUMsWUFBTyxHQUFPLElBQUksQ0FBQztvQkFFdkIsYUFBYTtvQkFDYixTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFTSxVQUFVO29CQUNoQixPQUFPLE9BQU8sQ0FBQztnQkFDaEIsQ0FBQztnQkFFTSxPQUFPO2dCQUVkLENBQUM7YUFFRDtZQWxCWSxRQUFBLFVBQVUsYUFrQnRCLENBQUE7UUFDRixDQUFDLEVBcEJzQixPQUFPLEdBQVAsTUFBQSxPQUFPLEtBQVAsTUFBQSxPQUFPLFFBb0I3QjtJQUFELENBQUMsRUFwQmdCLEtBQUssR0FBTCxPQUFBLEtBQUssS0FBTCxPQUFBLEtBQUssUUFvQnJCO0FBQUQsQ0FBQyxFQXBCUyxNQUFNLEtBQU4sTUFBTSxRQW9CZjtBQUdELE1BQU0sWUFBWTtJQUEyQixlQUFlLEtBQWEsT0FBTyxJQUFJLENBQUMsQ0FBQSxDQUFDO0NBQUU7QUFTeEYsV0FBVSxNQUFNO0lBQUMsSUFBQSxLQUFLLENBd0JyQjtJQXhCZ0IsV0FBQSxLQUFLO1FBQUMsSUFBQSxTQUFTLENBd0IvQjtRQXhCc0IsV0FBQSxTQUFTO1lBQUMsSUFBQSxTQUFTLENBd0J6QztZQXhCZ0MsV0FBQSxTQUFTO2dCQUV6QyxNQUFhLEtBQUs7b0JBQ1gsWUFBb0IsSUFBVztvQ0FBWCxJQUFJO29CQUFXLENBQUM7b0JBQ25DLEtBQUs7d0JBQ1gsT0FBTyxJQUFJLENBQUM7b0JBQ2IsQ0FBQztvQkFFTSxNQUFNLENBQUMsS0FBWTt3QkFDekIsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO29CQUN2QixDQUFDO29CQUVNLE9BQU8sS0FBWSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hDO2dCQVhZLFVBQUEsS0FBSyxRQVdqQixDQUFBO2dCQUVELE1BQWEsSUFBSyxTQUFRLFlBQVk7b0JBRXJDLGFBQWE7b0JBQ04sZUFBZTt3QkFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztpQkFHRDtnQkFSWSxVQUFBLElBQUksT0FRaEIsQ0FBQTtZQUNGLENBQUMsRUF4QmdDLFNBQVMsR0FBVCxVQUFBLFNBQVMsS0FBVCxVQUFBLFNBQVMsUUF3QnpDO1FBQUQsQ0FBQyxFQXhCc0IsU0FBUyxHQUFULE1BQUEsU0FBUyxLQUFULE1BQUEsU0FBUyxRQXdCL0I7SUFBRCxDQUFDLEVBeEJnQixLQUFLLEdBQUwsT0FBQSxLQUFLLEtBQUwsT0FBQSxLQUFLLFFBd0JyQjtBQUFELENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmYifQ==,Ly8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXIKLy8gU2NlbmFyaW8gMjogVGVzdCByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoIGNhc3QgYW5kICJ0aGlzIiBwYXJhbWV0ZXIKCgoKZGVjbGFyZSBuYW1lc3BhY2UgU2FtcGxlLlRoaW5nIHsKCglleHBvcnQgaW50ZXJmYWNlIElXaWRnZXQgewoJCWdldERvbU5vZGUoKTogYW55OwoJCWRlc3Ryb3koKTsKCQlnYXIocnVubmVyOih3aWRnZXQ6U2FtcGxlLlRoaW5nLklXaWRnZXQpPT5hbnkpOmFueTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElDb2RlVGhpbmcgewogIAogIAkJZ2V0RG9tTm9kZSgpOiBFbGVtZW50OwoJCQoJCWFkZFdpZGdldCh3aWRnZXRJZDpzdHJpbmcsIHdpZGdldDpJV2lkZ2V0KTsKCgkJCgkJZm9jdXMoKTsgCgkJCgkJLy9hZGRXaWRnZXQod2lkZ2V0OiBTYW1wbGUuVGhpbmcuV2lkZ2V0cy5JV2lkZ2V0KTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24gewoJCXJ1bihUaGluZzpJQ29kZVRoaW5nKTpib29sZWFuOwoJCWdldElkKCk6c3RyaW5nOwoJfQkKfQoKbmFtZXNwYWNlIFNhbXBsZS5BY3Rpb25zLlRoaW5nLkZpbmQgewoJZXhwb3J0IGNsYXNzIFN0YXJ0RmluZEFjdGlvbiBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JQWN0aW9uIHsKCQkKCQlwdWJsaWMgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9CgkJCgkJcHVibGljIHJ1bihUaGluZzpTYW1wbGUuVGhpbmcuSUNvZGVUaGluZyk6Ym9vbGVhbiB7CgoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCm5hbWVzcGFjZSBTYW1wbGUuVGhpbmcuV2lkZ2V0cyB7CglleHBvcnQgY2xhc3MgRmluZFdpZGdldCBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JV2lkZ2V0IHsKCgkJcHVibGljIGdhcihydW5uZXI6KHdpZGdldDpTYW1wbGUuVGhpbmcuSVdpZGdldCk9PmFueSkgeyBpZiAodHJ1ZSkge3JldHVybiBydW5uZXIodGhpcyk7fX0KCQkJCgkJcHJpdmF0ZSBkb21Ob2RlOmFueSA9IG51bGw7CgkJY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlVGhpbmc6IFNhbXBsZS5UaGluZy5JQ29kZVRoaW5nKSB7CgkJICAgIC8vIHNjZW5hcmlvIDEKCQkgICAgY29kZVRoaW5nLmFkZFdpZGdldCgiYWRkV2lkZ2V0IiwgdGhpcyk7CgkJfQoJCQoJCXB1YmxpYyBnZXREb21Ob2RlKCkgewoJCQlyZXR1cm4gZG9tTm9kZTsKCQl9CgkJCgkJcHVibGljIGRlc3Ryb3koKSB7CgoJCX0KCgl9Cn0KCmludGVyZmFjZSBJTW9kZSB7IGdldEluaXRpYWxTdGF0ZSgpOiBJU3RhdGU7fSAKY2xhc3MgQWJzdHJhY3RNb2RlIGltcGxlbWVudHMgSU1vZGUgeyBwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7IHJldHVybiBudWxsO30gfQoKaW50ZXJmYWNlIElTdGF0ZSB7fQoKaW50ZXJmYWNlIFdpbmRvdyB7CiAgICBvcGVuZXI6IFdpbmRvdzsKfQpkZWNsYXJlIHZhciBzZWxmOiBXaW5kb3c7CgpuYW1lc3BhY2UgU2FtcGxlLlRoaW5nLkxhbmd1YWdlcy5QbGFpblRleHQgewoJCglleHBvcnQgY2xhc3MgU3RhdGUgaW1wbGVtZW50cyBJU3RhdGUgewkJCiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlOiBJTW9kZSkgeyB9CgkJcHVibGljIGNsb25lKCk6SVN0YXRlIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlwdWJsaWMgZXF1YWxzKG90aGVyOklTdGF0ZSk6Ym9vbGVhbiB7CgkJCXJldHVybiB0aGlzID09PSBvdGhlcjsKCQl9CgkJCgkJcHVibGljIGdldE1vZGUoKTogSU1vZGUgeyByZXR1cm4gbW9kZTsgfQoJfQoJCglleHBvcnQgY2xhc3MgTW9kZSBleHRlbmRzIEFic3RyYWN0TW9kZSB7CgoJCS8vIHNjZW5hcmlvIDIKCQlwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7CgkJCXJldHVybiBuZXcgU3RhdGUoc2VsZik7CgkJfQoKCgl9Cn0KCg==
+{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,0EAA0E;AA8B1E,IAAU,MAAM,CAUf;AAVD,WAAU,MAAM;IAAC,IAAA,OAAO,CAUvB;IAVgB,WAAA,OAAO;QAAC,IAAA,KAAK,CAU7B;QAVwB,WAAA,OAAK;YAAC,IAAA,IAAI,CAUlC;YAV8B,WAAA,IAAI;gBAClC,MAAa,eAAe;oBAEpB,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;oBAExB,GAAG,CAAC,KAA6B;wBAEvC,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD;gBARY,oBAAe,kBAQ3B,CAAA;YACF,CAAC,EAV8B,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAUlC;QAAD,CAAC,EAVwB,KAAK,GAAL,aAAK,KAAL,aAAK,QAU7B;IAAD,CAAC,EAVgB,OAAO,GAAP,cAAO,KAAP,cAAO,QAUvB;AAAD,CAAC,EAVS,MAAM,KAAN,MAAM,QAUf;AAED,WAAU,MAAM;IAAC,IAAA,KAAK,CAoBrB;IApBgB,WAAA,KAAK;QAAC,IAAA,OAAO,CAoB7B;QApBsB,WAAA,OAAO;YAC7B,MAAa,UAAU;gBAEf,GAAG,CAAC,MAAyC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC,CAAA,CAAC;gBAGzF,YAAoB,SAAkC;oBAAlC,cAAS,GAAT,SAAS,CAAyB;oBAD9C,YAAO,GAAO,IAAI,CAAC;oBAEvB,aAAa;oBACb,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBAEM,UAAU;oBAChB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAEM,OAAO;gBAEd,CAAC;aAED;YAlBY,kBAAU,aAkBtB,CAAA;QACF,CAAC,EApBsB,OAAO,GAAP,aAAO,KAAP,aAAO,QAoB7B;IAAD,CAAC,EApBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAoBrB;AAAD,CAAC,EApBS,MAAM,KAAN,MAAM,QAoBf;AAGD,MAAM,YAAY;IAA2B,eAAe,KAAa,OAAO,IAAI,CAAC,CAAA,CAAC;CAAE;AASxF,WAAU,MAAM;IAAC,IAAA,KAAK,CAwBrB;IAxBgB,WAAA,KAAK;QAAC,IAAA,SAAS,CAwB/B;QAxBsB,WAAA,SAAS;YAAC,IAAA,SAAS,CAwBzC;YAxBgC,WAAA,SAAS;gBAEzC,MAAa,KAAK;oBACX,YAAoB,IAAW;oCAAX,IAAI;oBAAW,CAAC;oBACnC,KAAK;wBACX,OAAO,IAAI,CAAC;oBACb,CAAC;oBAEM,MAAM,CAAC,KAAY;wBACzB,OAAO,IAAI,KAAK,KAAK,CAAC;oBACvB,CAAC;oBAEM,OAAO,KAAY,OAAO,IAAI,CAAC,CAAC,CAAC;iBACxC;gBAXY,eAAK,QAWjB,CAAA;gBAED,MAAa,IAAK,SAAQ,YAAY;oBAErC,aAAa;oBACN,eAAe;wBACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;iBAGD;gBARY,cAAI,OAQhB,CAAA;YACF,CAAC,EAxBgC,SAAS,GAAT,mBAAS,KAAT,mBAAS,QAwBzC;QAAD,CAAC,EAxBsB,SAAS,GAAT,eAAS,KAAT,eAAS,QAwB/B;IAAD,CAAC,EAxBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAwBrB;AAAD,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXINCi8vIFNjZW5hcmlvIDI6IFRlc3QgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGwgd2l0aCBjYXN0IGFuZCAidGhpcyIgcGFyYW1ldGVyDQp2YXIgU2FtcGxlOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgQWN0aW9uczsNCiAgICAoZnVuY3Rpb24gKEFjdGlvbnMpIHsNCiAgICAgICAgdmFyIFRoaW5nOw0KICAgICAgICAoZnVuY3Rpb24gKFRoaW5nXzEpIHsNCiAgICAgICAgICAgIHZhciBGaW5kOw0KICAgICAgICAgICAgKGZ1bmN0aW9uIChGaW5kKSB7DQogICAgICAgICAgICAgICAgY2xhc3MgU3RhcnRGaW5kQWN0aW9uIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9DQogICAgICAgICAgICAgICAgICAgIHJ1bihUaGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRmluZC5TdGFydEZpbmRBY3Rpb24gPSBTdGFydEZpbmRBY3Rpb247DQogICAgICAgICAgICB9KShGaW5kID0gVGhpbmdfMS5GaW5kIHx8IChUaGluZ18xLkZpbmQgPSB7fSkpOw0KICAgICAgICB9KShUaGluZyA9IEFjdGlvbnMuVGhpbmcgfHwgKEFjdGlvbnMuVGhpbmcgPSB7fSkpOw0KICAgIH0pKEFjdGlvbnMgPSBTYW1wbGUuQWN0aW9ucyB8fCAoU2FtcGxlLkFjdGlvbnMgPSB7fSkpOw0KfSkoU2FtcGxlIHx8IChTYW1wbGUgPSB7fSkpOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgVGhpbmc7DQogICAgKGZ1bmN0aW9uIChUaGluZykgew0KICAgICAgICB2YXIgV2lkZ2V0czsNCiAgICAgICAgKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQogICAgICAgICAgICBjbGFzcyBGaW5kV2lkZ2V0IHsNCiAgICAgICAgICAgICAgICBnYXIocnVubmVyKSB7IGlmICh0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5uZXIodGhpcyk7DQogICAgICAgICAgICAgICAgfSB9DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoY29kZVRoaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZVRoaW5nID0gY29kZVRoaW5nOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbU5vZGUgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAxDQogICAgICAgICAgICAgICAgICAgIGNvZGVUaGluZy5hZGRXaWRnZXQoImFkZFdpZGdldCIsIHRoaXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnZXREb21Ob2RlKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVzdHJveSgpIHsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBXaWRnZXRzLkZpbmRXaWRnZXQgPSBGaW5kV2lkZ2V0Ow0KICAgICAgICB9KShXaWRnZXRzID0gVGhpbmcuV2lkZ2V0cyB8fCAoVGhpbmcuV2lkZ2V0cyA9IHt9KSk7DQogICAgfSkoVGhpbmcgPSBTYW1wbGUuVGhpbmcgfHwgKFNhbXBsZS5UaGluZyA9IHt9KSk7DQp9KShTYW1wbGUgfHwgKFNhbXBsZSA9IHt9KSk7DQpjbGFzcyBBYnN0cmFjdE1vZGUgew0KICAgIGdldEluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCn0NCihmdW5jdGlvbiAoU2FtcGxlKSB7DQogICAgdmFyIFRoaW5nOw0KICAgIChmdW5jdGlvbiAoVGhpbmcpIHsNCiAgICAgICAgdmFyIExhbmd1YWdlczsNCiAgICAgICAgKGZ1bmN0aW9uIChMYW5ndWFnZXMpIHsNCiAgICAgICAgICAgIHZhciBQbGFpblRleHQ7DQogICAgICAgICAgICAoZnVuY3Rpb24gKFBsYWluVGV4dCkgew0KICAgICAgICAgICAgICAgIGNsYXNzIFN0YXRlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IobW9kZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjbG9uZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVxdWFscyhvdGhlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IG90aGVyOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGdldE1vZGUoKSB7IHJldHVybiBtb2RlOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFBsYWluVGV4dC5TdGF0ZSA9IFN0YXRlOw0KICAgICAgICAgICAgICAgIGNsYXNzIE1vZGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGUgew0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAyDQogICAgICAgICAgICAgICAgICAgIGdldEluaXRpYWxTdGF0ZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGUoc2VsZik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgUGxhaW5UZXh0Lk1vZGUgPSBNb2RlOw0KICAgICAgICAgICAgfSkoUGxhaW5UZXh0ID0gTGFuZ3VhZ2VzLlBsYWluVGV4dCB8fCAoTGFuZ3VhZ2VzLlBsYWluVGV4dCA9IHt9KSk7DQogICAgICAgIH0pKExhbmd1YWdlcyA9IFRoaW5nLkxhbmd1YWdlcyB8fCAoVGhpbmcuTGFuZ3VhZ2VzID0ge30pKTsNCiAgICB9KShUaGluZyA9IFNhbXBsZS5UaGluZyB8fCAoU2FtcGxlLlRoaW5nID0ge30pKTsNCn0pKFNhbXBsZSB8fCAoU2FtcGxlID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlY3Vyc2l2ZUNsYXNzUmVmZXJlbmNlVGVzdC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMEVBQTBFO0FBOEIxRSxJQUFVLE1BQU0sQ0FVZjtBQVZELFdBQVUsTUFBTTtJQUFDLElBQUEsT0FBTyxDQVV2QjtJQVZnQixXQUFBLE9BQU87UUFBQyxJQUFBLEtBQUssQ0FVN0I7UUFWd0IsV0FBQSxPQUFLO1lBQUMsSUFBQSxJQUFJLENBVWxDO1lBVjhCLFdBQUEsSUFBSTtnQkFDbEMsTUFBYSxlQUFlO29CQUVwQixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUV4QixHQUFHLENBQUMsS0FBNkI7d0JBRXZDLE9BQU8sSUFBSSxDQUFDO29CQUNiLENBQUM7aUJBQ0Q7Z0JBUlksb0JBQWUsa0JBUTNCLENBQUE7WUFDRixDQUFDLEVBVjhCLElBQUksR0FBSixZQUFJLEtBQUosWUFBSSxRQVVsQztRQUFELENBQUMsRUFWd0IsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBVTdCO0lBQUQsQ0FBQyxFQVZnQixPQUFPLEdBQVAsY0FBTyxLQUFQLGNBQU8sUUFVdkI7QUFBRCxDQUFDLEVBVlMsTUFBTSxLQUFOLE1BQU0sUUFVZjtBQUVELFdBQVUsTUFBTTtJQUFDLElBQUEsS0FBSyxDQW9CckI7SUFwQmdCLFdBQUEsS0FBSztRQUFDLElBQUEsT0FBTyxDQW9CN0I7UUFwQnNCLFdBQUEsT0FBTztZQUM3QixNQUFhLFVBQVU7Z0JBRWYsR0FBRyxDQUFDLE1BQXlDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFBQSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUEsQ0FBQztnQkFHekYsWUFBb0IsU0FBa0M7b0JBQWxDLGNBQVMsR0FBVCxTQUFTLENBQXlCO29CQUQ5QyxZQUFPLEdBQU8sSUFBSSxDQUFDO29CQUV2QixhQUFhO29CQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUVNLFVBQVU7b0JBQ2hCLE9BQU8sT0FBTyxDQUFDO2dCQUNoQixDQUFDO2dCQUVNLE9BQU87Z0JBRWQsQ0FBQzthQUVEO1lBbEJZLGtCQUFVLGFBa0J0QixDQUFBO1FBQ0YsQ0FBQyxFQXBCc0IsT0FBTyxHQUFQLGFBQU8sS0FBUCxhQUFPLFFBb0I3QjtJQUFELENBQUMsRUFwQmdCLEtBQUssR0FBTCxZQUFLLEtBQUwsWUFBSyxRQW9CckI7QUFBRCxDQUFDLEVBcEJTLE1BQU0sS0FBTixNQUFNLFFBb0JmO0FBR0QsTUFBTSxZQUFZO0lBQTJCLGVBQWUsS0FBYSxPQUFPLElBQUksQ0FBQyxDQUFBLENBQUM7Q0FBRTtBQVN4RixXQUFVLE1BQU07SUFBQyxJQUFBLEtBQUssQ0F3QnJCO0lBeEJnQixXQUFBLEtBQUs7UUFBQyxJQUFBLFNBQVMsQ0F3Qi9CO1FBeEJzQixXQUFBLFNBQVM7WUFBQyxJQUFBLFNBQVMsQ0F3QnpDO1lBeEJnQyxXQUFBLFNBQVM7Z0JBRXpDLE1BQWEsS0FBSztvQkFDWCxZQUFvQixJQUFXO29DQUFYLElBQUk7b0JBQVcsQ0FBQztvQkFDbkMsS0FBSzt3QkFDWCxPQUFPLElBQUksQ0FBQztvQkFDYixDQUFDO29CQUVNLE1BQU0sQ0FBQyxLQUFZO3dCQUN6QixPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7b0JBQ3ZCLENBQUM7b0JBRU0sT0FBTyxLQUFZLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEM7Z0JBWFksZUFBSyxRQVdqQixDQUFBO2dCQUVELE1BQWEsSUFBSyxTQUFRLFlBQVk7b0JBRXJDLGFBQWE7b0JBQ04sZUFBZTt3QkFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztpQkFHRDtnQkFSWSxjQUFJLE9BUWhCLENBQUE7WUFDRixDQUFDLEVBeEJnQyxTQUFTLEdBQVQsbUJBQVMsS0FBVCxtQkFBUyxRQXdCekM7UUFBRCxDQUFDLEVBeEJzQixTQUFTLEdBQVQsZUFBUyxLQUFULGVBQVMsUUF3Qi9CO0lBQUQsQ0FBQyxFQXhCZ0IsS0FBSyxHQUFMLFlBQUssS0FBTCxZQUFLLFFBd0JyQjtBQUFELENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmYifQ==,Ly8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXIKLy8gU2NlbmFyaW8gMjogVGVzdCByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoIGNhc3QgYW5kICJ0aGlzIiBwYXJhbWV0ZXIKCgoKZGVjbGFyZSBuYW1lc3BhY2UgU2FtcGxlLlRoaW5nIHsKCglleHBvcnQgaW50ZXJmYWNlIElXaWRnZXQgewoJCWdldERvbU5vZGUoKTogYW55OwoJCWRlc3Ryb3koKTsKCQlnYXIocnVubmVyOih3aWRnZXQ6U2FtcGxlLlRoaW5nLklXaWRnZXQpPT5hbnkpOmFueTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElDb2RlVGhpbmcgewogIAogIAkJZ2V0RG9tTm9kZSgpOiBFbGVtZW50OwoJCQoJCWFkZFdpZGdldCh3aWRnZXRJZDpzdHJpbmcsIHdpZGdldDpJV2lkZ2V0KTsKCgkJCgkJZm9jdXMoKTsgCgkJCgkJLy9hZGRXaWRnZXQod2lkZ2V0OiBTYW1wbGUuVGhpbmcuV2lkZ2V0cy5JV2lkZ2V0KTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24gewoJCXJ1bihUaGluZzpJQ29kZVRoaW5nKTpib29sZWFuOwoJCWdldElkKCk6c3RyaW5nOwoJfQkKfQoKbmFtZXNwYWNlIFNhbXBsZS5BY3Rpb25zLlRoaW5nLkZpbmQgewoJZXhwb3J0IGNsYXNzIFN0YXJ0RmluZEFjdGlvbiBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JQWN0aW9uIHsKCQkKCQlwdWJsaWMgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9CgkJCgkJcHVibGljIHJ1bihUaGluZzpTYW1wbGUuVGhpbmcuSUNvZGVUaGluZyk6Ym9vbGVhbiB7CgoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCm5hbWVzcGFjZSBTYW1wbGUuVGhpbmcuV2lkZ2V0cyB7CglleHBvcnQgY2xhc3MgRmluZFdpZGdldCBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JV2lkZ2V0IHsKCgkJcHVibGljIGdhcihydW5uZXI6KHdpZGdldDpTYW1wbGUuVGhpbmcuSVdpZGdldCk9PmFueSkgeyBpZiAodHJ1ZSkge3JldHVybiBydW5uZXIodGhpcyk7fX0KCQkJCgkJcHJpdmF0ZSBkb21Ob2RlOmFueSA9IG51bGw7CgkJY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlVGhpbmc6IFNhbXBsZS5UaGluZy5JQ29kZVRoaW5nKSB7CgkJICAgIC8vIHNjZW5hcmlvIDEKCQkgICAgY29kZVRoaW5nLmFkZFdpZGdldCgiYWRkV2lkZ2V0IiwgdGhpcyk7CgkJfQoJCQoJCXB1YmxpYyBnZXREb21Ob2RlKCkgewoJCQlyZXR1cm4gZG9tTm9kZTsKCQl9CgkJCgkJcHVibGljIGRlc3Ryb3koKSB7CgoJCX0KCgl9Cn0KCmludGVyZmFjZSBJTW9kZSB7IGdldEluaXRpYWxTdGF0ZSgpOiBJU3RhdGU7fSAKY2xhc3MgQWJzdHJhY3RNb2RlIGltcGxlbWVudHMgSU1vZGUgeyBwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7IHJldHVybiBudWxsO30gfQoKaW50ZXJmYWNlIElTdGF0ZSB7fQoKaW50ZXJmYWNlIFdpbmRvdyB7CiAgICBvcGVuZXI6IFdpbmRvdzsKfQpkZWNsYXJlIHZhciBzZWxmOiBXaW5kb3c7CgpuYW1lc3BhY2UgU2FtcGxlLlRoaW5nLkxhbmd1YWdlcy5QbGFpblRleHQgewoJCglleHBvcnQgY2xhc3MgU3RhdGUgaW1wbGVtZW50cyBJU3RhdGUgewkJCiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlOiBJTW9kZSkgeyB9CgkJcHVibGljIGNsb25lKCk6SVN0YXRlIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlwdWJsaWMgZXF1YWxzKG90aGVyOklTdGF0ZSk6Ym9vbGVhbiB7CgkJCXJldHVybiB0aGlzID09PSBvdGhlcjsKCQl9CgkJCgkJcHVibGljIGdldE1vZGUoKTogSU1vZGUgeyByZXR1cm4gbW9kZTsgfQoJfQoJCglleHBvcnQgY2xhc3MgTW9kZSBleHRlbmRzIEFic3RyYWN0TW9kZSB7CgoJCS8vIHNjZW5hcmlvIDIKCQlwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7CgkJCXJldHVybiBuZXcgU3RhdGUoc2VsZik7CgkJfQoKCgl9Cn0KCg==
diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map.diff b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map.diff
index 4efc4306745..8daf8d394ac 100644
--- a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.js.map.diff
@@ -4,5 +4,5 @@
//// [recursiveClassReferenceTest.js.map]
-{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,0EAA0E;AA8B1E,IAAU,MAAM,CAUf;AAVD,WAAU,MAAM;IAAC,IAAA,OAAO,CAUvB;IAVgB,WAAA,OAAO;QAAC,IAAA,KAAK,CAU7B;QAVwB,WAAA,OAAK;YAAC,IAAA,IAAI,CAUlC;YAV8B,WAAA,IAAI;gBAClC,MAAa,eAAe;oBAEpB,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;oBAExB,GAAG,CAAC,KAA6B;wBAEvC,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD;gBARY,oBAAe,kBAQ3B,CAAA;YACF,CAAC,EAV8B,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAUlC;QAAD,CAAC,EAVwB,KAAK,GAAL,aAAK,KAAL,aAAK,QAU7B;IAAD,CAAC,EAVgB,OAAO,GAAP,cAAO,KAAP,cAAO,QAUvB;AAAD,CAAC,EAVS,MAAM,KAAN,MAAM,QAUf;AAED,WAAU,MAAM;IAAC,IAAA,KAAK,CAoBrB;IApBgB,WAAA,KAAK;QAAC,IAAA,OAAO,CAoB7B;QApBsB,WAAA,OAAO;YAC7B,MAAa,UAAU;gBAEf,GAAG,CAAC,MAAyC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC,CAAA,CAAC;gBAGzF,YAAoB,SAAkC;oBAAlC,cAAS,GAAT,SAAS,CAAyB;oBAD9C,YAAO,GAAO,IAAI,CAAC;oBAEvB,aAAa;oBACb,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBAEM,UAAU;oBAChB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAEM,OAAO;gBAEd,CAAC;aAED;YAlBY,kBAAU,aAkBtB,CAAA;QACF,CAAC,EApBsB,OAAO,GAAP,aAAO,KAAP,aAAO,QAoB7B;IAAD,CAAC,EApBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAoBrB;AAAD,CAAC,EApBS,MAAM,KAAN,MAAM,QAoBf;AAGD,MAAM,YAAY;IAA2B,eAAe,KAAa,OAAO,IAAI,CAAC,CAAA,CAAC;CAAE;AASxF,WAAU,MAAM;IAAC,IAAA,KAAK,CAwBrB;IAxBgB,WAAA,KAAK;QAAC,IAAA,SAAS,CAwB/B;QAxBsB,WAAA,SAAS;YAAC,IAAA,SAAS,CAwBzC;YAxBgC,WAAA,SAAS;gBAEzC,MAAa,KAAK;oBACX,YAAoB,IAAW;wBAAX,SAAI,GAAJ,IAAI,CAAO;oBAAI,CAAC;oBACnC,KAAK;wBACX,OAAO,IAAI,CAAC;oBACb,CAAC;oBAEM,MAAM,CAAC,KAAY;wBACzB,OAAO,IAAI,KAAK,KAAK,CAAC;oBACvB,CAAC;oBAEM,OAAO,KAAY,OAAO,IAAI,CAAC,CAAC,CAAC;iBACxC;gBAXY,eAAK,QAWjB,CAAA;gBAED,MAAa,IAAK,SAAQ,YAAY;oBAErC,aAAa;oBACN,eAAe;wBACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;iBAGD;gBARY,cAAI,OAQhB,CAAA;YACF,CAAC,EAxBgC,SAAS,GAAT,mBAAS,KAAT,mBAAS,QAwBzC;QAAD,CAAC,EAxBsB,SAAS,GAAT,eAAS,KAAT,eAAS,QAwB/B;IAAD,CAAC,EAxBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAwBrB;AAAD,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXINCi8vIFNjZW5hcmlvIDI6IFRlc3QgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGwgd2l0aCBjYXN0IGFuZCAidGhpcyIgcGFyYW1ldGVyDQp2YXIgU2FtcGxlOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgQWN0aW9uczsNCiAgICAoZnVuY3Rpb24gKEFjdGlvbnMpIHsNCiAgICAgICAgdmFyIFRoaW5nOw0KICAgICAgICAoZnVuY3Rpb24gKFRoaW5nXzEpIHsNCiAgICAgICAgICAgIHZhciBGaW5kOw0KICAgICAgICAgICAgKGZ1bmN0aW9uIChGaW5kKSB7DQogICAgICAgICAgICAgICAgY2xhc3MgU3RhcnRGaW5kQWN0aW9uIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9DQogICAgICAgICAgICAgICAgICAgIHJ1bihUaGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRmluZC5TdGFydEZpbmRBY3Rpb24gPSBTdGFydEZpbmRBY3Rpb247DQogICAgICAgICAgICB9KShGaW5kID0gVGhpbmdfMS5GaW5kIHx8IChUaGluZ18xLkZpbmQgPSB7fSkpOw0KICAgICAgICB9KShUaGluZyA9IEFjdGlvbnMuVGhpbmcgfHwgKEFjdGlvbnMuVGhpbmcgPSB7fSkpOw0KICAgIH0pKEFjdGlvbnMgPSBTYW1wbGUuQWN0aW9ucyB8fCAoU2FtcGxlLkFjdGlvbnMgPSB7fSkpOw0KfSkoU2FtcGxlIHx8IChTYW1wbGUgPSB7fSkpOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgVGhpbmc7DQogICAgKGZ1bmN0aW9uIChUaGluZykgew0KICAgICAgICB2YXIgV2lkZ2V0czsNCiAgICAgICAgKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQogICAgICAgICAgICBjbGFzcyBGaW5kV2lkZ2V0IHsNCiAgICAgICAgICAgICAgICBnYXIocnVubmVyKSB7IGlmICh0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5uZXIodGhpcyk7DQogICAgICAgICAgICAgICAgfSB9DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoY29kZVRoaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZVRoaW5nID0gY29kZVRoaW5nOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbU5vZGUgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAxDQogICAgICAgICAgICAgICAgICAgIGNvZGVUaGluZy5hZGRXaWRnZXQoImFkZFdpZGdldCIsIHRoaXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnZXREb21Ob2RlKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVzdHJveSgpIHsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBXaWRnZXRzLkZpbmRXaWRnZXQgPSBGaW5kV2lkZ2V0Ow0KICAgICAgICB9KShXaWRnZXRzID0gVGhpbmcuV2lkZ2V0cyB8fCAoVGhpbmcuV2lkZ2V0cyA9IHt9KSk7DQogICAgfSkoVGhpbmcgPSBTYW1wbGUuVGhpbmcgfHwgKFNhbXBsZS5UaGluZyA9IHt9KSk7DQp9KShTYW1wbGUgfHwgKFNhbXBsZSA9IHt9KSk7DQpjbGFzcyBBYnN0cmFjdE1vZGUgew0KICAgIGdldEluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCn0NCihmdW5jdGlvbiAoU2FtcGxlKSB7DQogICAgdmFyIFRoaW5nOw0KICAgIChmdW5jdGlvbiAoVGhpbmcpIHsNCiAgICAgICAgdmFyIExhbmd1YWdlczsNCiAgICAgICAgKGZ1bmN0aW9uIChMYW5ndWFnZXMpIHsNCiAgICAgICAgICAgIHZhciBQbGFpblRleHQ7DQogICAgICAgICAgICAoZnVuY3Rpb24gKFBsYWluVGV4dCkgew0KICAgICAgICAgICAgICAgIGNsYXNzIFN0YXRlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IobW9kZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjbG9uZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVxdWFscyhvdGhlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IG90aGVyOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGdldE1vZGUoKSB7IHJldHVybiBtb2RlOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFBsYWluVGV4dC5TdGF0ZSA9IFN0YXRlOw0KICAgICAgICAgICAgICAgIGNsYXNzIE1vZGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGUgew0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAyDQogICAgICAgICAgICAgICAgICAgIGdldEluaXRpYWxTdGF0ZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGUoc2VsZik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgUGxhaW5UZXh0Lk1vZGUgPSBNb2RlOw0KICAgICAgICAgICAgfSkoUGxhaW5UZXh0ID0gTGFuZ3VhZ2VzLlBsYWluVGV4dCB8fCAoTGFuZ3VhZ2VzLlBsYWluVGV4dCA9IHt9KSk7DQogICAgICAgIH0pKExhbmd1YWdlcyA9IFRoaW5nLkxhbmd1YWdlcyB8fCAoVGhpbmcuTGFuZ3VhZ2VzID0ge30pKTsNCiAgICB9KShUaGluZyA9IFNhbXBsZS5UaGluZyB8fCAoU2FtcGxlLlRoaW5nID0ge30pKTsNCn0pKFNhbXBsZSB8fCAoU2FtcGxlID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlY3Vyc2l2ZUNsYXNzUmVmZXJlbmNlVGVzdC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMEVBQTBFO0FBOEIxRSxJQUFVLE1BQU0sQ0FVZjtBQVZELFdBQVUsTUFBTTtJQUFDLElBQUEsT0FBTyxDQVV2QjtJQVZnQixXQUFBLE9BQU87UUFBQyxJQUFBLEtBQUssQ0FVN0I7UUFWd0IsV0FBQSxPQUFLO1lBQUMsSUFBQSxJQUFJLENBVWxDO1lBVjhCLFdBQUEsSUFBSTtnQkFDbEMsTUFBYSxlQUFlO29CQUVwQixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUV4QixHQUFHLENBQUMsS0FBNkI7d0JBRXZDLE9BQU8sSUFBSSxDQUFDO29CQUNiLENBQUM7aUJBQ0Q7Z0JBUlksb0JBQWUsa0JBUTNCLENBQUE7WUFDRixDQUFDLEVBVjhCLElBQUksR0FBSixZQUFJLEtBQUosWUFBSSxRQVVsQztRQUFELENBQUMsRUFWd0IsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBVTdCO0lBQUQsQ0FBQyxFQVZnQixPQUFPLEdBQVAsY0FBTyxLQUFQLGNBQU8sUUFVdkI7QUFBRCxDQUFDLEVBVlMsTUFBTSxLQUFOLE1BQU0sUUFVZjtBQUVELFdBQVUsTUFBTTtJQUFDLElBQUEsS0FBSyxDQW9CckI7SUFwQmdCLFdBQUEsS0FBSztRQUFDLElBQUEsT0FBTyxDQW9CN0I7UUFwQnNCLFdBQUEsT0FBTztZQUM3QixNQUFhLFVBQVU7Z0JBRWYsR0FBRyxDQUFDLE1BQXlDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFBQSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUEsQ0FBQztnQkFHekYsWUFBb0IsU0FBa0M7b0JBQWxDLGNBQVMsR0FBVCxTQUFTLENBQXlCO29CQUQ5QyxZQUFPLEdBQU8sSUFBSSxDQUFDO29CQUV2QixhQUFhO29CQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUVNLFVBQVU7b0JBQ2hCLE9BQU8sT0FBTyxDQUFDO2dCQUNoQixDQUFDO2dCQUVNLE9BQU87Z0JBRWQsQ0FBQzthQUVEO1lBbEJZLGtCQUFVLGFBa0J0QixDQUFBO1FBQ0YsQ0FBQyxFQXBCc0IsT0FBTyxHQUFQLGFBQU8sS0FBUCxhQUFPLFFBb0I3QjtJQUFELENBQUMsRUFwQmdCLEtBQUssR0FBTCxZQUFLLEtBQUwsWUFBSyxRQW9CckI7QUFBRCxDQUFDLEVBcEJTLE1BQU0sS0FBTixNQUFNLFFBb0JmO0FBR0QsTUFBTSxZQUFZO0lBQTJCLGVBQWUsS0FBYSxPQUFPLElBQUksQ0FBQyxDQUFBLENBQUM7Q0FBRTtBQVN4RixXQUFVLE1BQU07SUFBQyxJQUFBLEtBQUssQ0F3QnJCO0lBeEJnQixXQUFBLEtBQUs7UUFBQyxJQUFBLFNBQVMsQ0F3Qi9CO1FBeEJzQixXQUFBLFNBQVM7WUFBQyxJQUFBLFNBQVMsQ0F3QnpDO1lBeEJnQyxXQUFBLFNBQVM7Z0JBRXpDLE1BQWEsS0FBSztvQkFDWCxZQUFvQixJQUFXO3dCQUFYLFNBQUksR0FBSixJQUFJLENBQU87b0JBQUksQ0FBQztvQkFDbkMsS0FBSzt3QkFDWCxPQUFPLElBQUksQ0FBQztvQkFDYixDQUFDO29CQUVNLE1BQU0sQ0FBQyxLQUFZO3dCQUN6QixPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7b0JBQ3ZCLENBQUM7b0JBRU0sT0FBTyxLQUFZLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEM7Z0JBWFksZUFBSyxRQVdqQixDQUFBO2dCQUVELE1BQWEsSUFBSyxTQUFRLFlBQVk7b0JBRXJDLGFBQWE7b0JBQ04sZUFBZTt3QkFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztpQkFHRDtnQkFSWSxjQUFJLE9BUWhCLENBQUE7WUFDRixDQUFDLEVBeEJnQyxTQUFTLEdBQVQsbUJBQVMsS0FBVCxtQkFBUyxRQXdCekM7UUFBRCxDQUFDLEVBeEJzQixTQUFTLEdBQVQsZUFBUyxLQUFULGVBQVMsUUF3Qi9CO0lBQUQsQ0FBQyxFQXhCZ0IsS0FBSyxHQUFMLFlBQUssS0FBTCxZQUFLLFFBd0JyQjtBQUFELENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmYifQ==,Ly8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXIKLy8gU2NlbmFyaW8gMjogVGVzdCByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoIGNhc3QgYW5kICJ0aGlzIiBwYXJhbWV0ZXIKCgoKZGVjbGFyZSBuYW1lc3BhY2UgU2FtcGxlLlRoaW5nIHsKCglleHBvcnQgaW50ZXJmYWNlIElXaWRnZXQgewoJCWdldERvbU5vZGUoKTogYW55OwoJCWRlc3Ryb3koKTsKCQlnYXIocnVubmVyOih3aWRnZXQ6U2FtcGxlLlRoaW5nLklXaWRnZXQpPT5hbnkpOmFueTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElDb2RlVGhpbmcgewogIAogIAkJZ2V0RG9tTm9kZSgpOiBFbGVtZW50OwoJCQoJCWFkZFdpZGdldCh3aWRnZXRJZDpzdHJpbmcsIHdpZGdldDpJV2lkZ2V0KTsKCgkJCgkJZm9jdXMoKTsgCgkJCgkJLy9hZGRXaWRnZXQod2lkZ2V0OiBTYW1wbGUuVGhpbmcuV2lkZ2V0cy5JV2lkZ2V0KTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24gewoJCXJ1bihUaGluZzpJQ29kZVRoaW5nKTpib29sZWFuOwoJCWdldElkKCk6c3RyaW5nOwoJfQkKfQoKbmFtZXNwYWNlIFNhbXBsZS5BY3Rpb25zLlRoaW5nLkZpbmQgewoJZXhwb3J0IGNsYXNzIFN0YXJ0RmluZEFjdGlvbiBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JQWN0aW9uIHsKCQkKCQlwdWJsaWMgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9CgkJCgkJcHVibGljIHJ1bihUaGluZzpTYW1wbGUuVGhpbmcuSUNvZGVUaGluZyk6Ym9vbGVhbiB7CgoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCm5hbWVzcGFjZSBTYW1wbGUuVGhpbmcuV2lkZ2V0cyB7CglleHBvcnQgY2xhc3MgRmluZFdpZGdldCBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JV2lkZ2V0IHsKCgkJcHVibGljIGdhcihydW5uZXI6KHdpZGdldDpTYW1wbGUuVGhpbmcuSVdpZGdldCk9PmFueSkgeyBpZiAodHJ1ZSkge3JldHVybiBydW5uZXIodGhpcyk7fX0KCQkJCgkJcHJpdmF0ZSBkb21Ob2RlOmFueSA9IG51bGw7CgkJY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlVGhpbmc6IFNhbXBsZS5UaGluZy5JQ29kZVRoaW5nKSB7CgkJICAgIC8vIHNjZW5hcmlvIDEKCQkgICAgY29kZVRoaW5nLmFkZFdpZGdldCgiYWRkV2lkZ2V0IiwgdGhpcyk7CgkJfQoJCQoJCXB1YmxpYyBnZXREb21Ob2RlKCkgewoJCQlyZXR1cm4gZG9tTm9kZTsKCQl9CgkJCgkJcHVibGljIGRlc3Ryb3koKSB7CgoJCX0KCgl9Cn0KCmludGVyZmFjZSBJTW9kZSB7IGdldEluaXRpYWxTdGF0ZSgpOiBJU3RhdGU7fSAKY2xhc3MgQWJzdHJhY3RNb2RlIGltcGxlbWVudHMgSU1vZGUgeyBwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7IHJldHVybiBudWxsO30gfQoKaW50ZXJmYWNlIElTdGF0ZSB7fQoKaW50ZXJmYWNlIFdpbmRvdyB7CiAgICBvcGVuZXI6IFdpbmRvdzsKfQpkZWNsYXJlIHZhciBzZWxmOiBXaW5kb3c7CgpuYW1lc3BhY2UgU2FtcGxlLlRoaW5nLkxhbmd1YWdlcy5QbGFpblRleHQgewoJCglleHBvcnQgY2xhc3MgU3RhdGUgaW1wbGVtZW50cyBJU3RhdGUgewkJCiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlOiBJTW9kZSkgeyB9CgkJcHVibGljIGNsb25lKCk6SVN0YXRlIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlwdWJsaWMgZXF1YWxzKG90aGVyOklTdGF0ZSk6Ym9vbGVhbiB7CgkJCXJldHVybiB0aGlzID09PSBvdGhlcjsKCQl9CgkJCgkJcHVibGljIGdldE1vZGUoKTogSU1vZGUgeyByZXR1cm4gbW9kZTsgfQoJfQoJCglleHBvcnQgY2xhc3MgTW9kZSBleHRlbmRzIEFic3RyYWN0TW9kZSB7CgoJCS8vIHNjZW5hcmlvIDIKCQlwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7CgkJCXJldHVybiBuZXcgU3RhdGUoc2VsZik7CgkJfQoKCgl9Cn0KCg==
-+{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,0EAA0E;AA8B1E,IAAU,MAAM,CAUf;AAVD,WAAU,MAAM;IAAC,IAAA,OAAO,CAUvB;IAVgB,WAAA,OAAO;QAAC,IAAA,KAAK,CAU7B;QAVwB,WAAA,OAAK;YAAC,IAAA,IAAI,CAUlC;YAV8B,WAAA,IAAI;gBAClC,MAAa,eAAe;oBAEpB,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;oBAExB,GAAG,CAAC,KAA6B;wBAEvC,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD;gBARY,KAAA,eAAe,kBAQ3B,CAAA;YACF,CAAC,EAV8B,IAAI,GAAJ,QAAA,IAAI,KAAJ,QAAA,IAAI,QAUlC;QAAD,CAAC,EAVwB,KAAK,GAAL,QAAA,KAAK,KAAL,QAAA,KAAK,QAU7B;IAAD,CAAC,EAVgB,OAAO,GAAP,OAAA,OAAO,KAAP,OAAA,OAAO,QAUvB;AAAD,CAAC,EAVS,MAAM,KAAN,MAAM,QAUf;AAED,WAAU,MAAM;IAAC,IAAA,KAAK,CAoBrB;IApBgB,WAAA,KAAK;QAAC,IAAA,OAAO,CAoB7B;QApBsB,WAAA,OAAO;YAC7B,MAAa,UAAU;gBAEf,GAAG,CAAC,MAAyC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC,CAAA,CAAC;gBAGzF,YAAoB,SAAkC;oBAAlC,cAAS,GAAT,SAAS,CAAyB;oBAD9C,YAAO,GAAO,IAAI,CAAC;oBAEvB,aAAa;oBACb,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBAEM,UAAU;oBAChB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAEM,OAAO;gBAEd,CAAC;aAED;YAlBY,QAAA,UAAU,aAkBtB,CAAA;QACF,CAAC,EApBsB,OAAO,GAAP,MAAA,OAAO,KAAP,MAAA,OAAO,QAoB7B;IAAD,CAAC,EApBgB,KAAK,GAAL,OAAA,KAAK,KAAL,OAAA,KAAK,QAoBrB;AAAD,CAAC,EApBS,MAAM,KAAN,MAAM,QAoBf;AAGD,MAAM,YAAY;IAA2B,eAAe,KAAa,OAAO,IAAI,CAAC,CAAA,CAAC;CAAE;AASxF,WAAU,MAAM;IAAC,IAAA,KAAK,CAwBrB;IAxBgB,WAAA,KAAK;QAAC,IAAA,SAAS,CAwB/B;QAxBsB,WAAA,SAAS;YAAC,IAAA,SAAS,CAwBzC;YAxBgC,WAAA,SAAS;gBAEzC,MAAa,KAAK;oBACX,YAAoB,IAAW;oCAAX,IAAI;oBAAW,CAAC;oBACnC,KAAK;wBACX,OAAO,IAAI,CAAC;oBACb,CAAC;oBAEM,MAAM,CAAC,KAAY;wBACzB,OAAO,IAAI,KAAK,KAAK,CAAC;oBACvB,CAAC;oBAEM,OAAO,KAAY,OAAO,IAAI,CAAC,CAAC,CAAC;iBACxC;gBAXY,UAAA,KAAK,QAWjB,CAAA;gBAED,MAAa,IAAK,SAAQ,YAAY;oBAErC,aAAa;oBACN,eAAe;wBACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;iBAGD;gBARY,UAAA,IAAI,OAQhB,CAAA;YACF,CAAC,EAxBgC,SAAS,GAAT,UAAA,SAAS,KAAT,UAAA,SAAS,QAwBzC;QAAD,CAAC,EAxBsB,SAAS,GAAT,MAAA,SAAS,KAAT,MAAA,SAAS,QAwB/B;IAAD,CAAC,EAxBgB,KAAK,GAAL,OAAA,KAAK,KAAL,OAAA,KAAK,QAwBrB;AAAD,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXINCi8vIFNjZW5hcmlvIDI6IFRlc3QgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGwgd2l0aCBjYXN0IGFuZCAidGhpcyIgcGFyYW1ldGVyDQp2YXIgU2FtcGxlOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgQWN0aW9uczsNCiAgICAoZnVuY3Rpb24gKEFjdGlvbnMpIHsNCiAgICAgICAgdmFyIFRoaW5nOw0KICAgICAgICAoZnVuY3Rpb24gKFRoaW5nXzEpIHsNCiAgICAgICAgICAgIHZhciBGaW5kOw0KICAgICAgICAgICAgKGZ1bmN0aW9uIChGaW5kKSB7DQogICAgICAgICAgICAgICAgY2xhc3MgU3RhcnRGaW5kQWN0aW9uIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9DQogICAgICAgICAgICAgICAgICAgIHJ1bihUaGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRmluZC5TdGFydEZpbmRBY3Rpb24gPSBTdGFydEZpbmRBY3Rpb247DQogICAgICAgICAgICB9KShGaW5kID0gVGhpbmdfMS5GaW5kIHx8IChUaGluZ18xLkZpbmQgPSB7fSkpOw0KICAgICAgICB9KShUaGluZyA9IEFjdGlvbnMuVGhpbmcgfHwgKEFjdGlvbnMuVGhpbmcgPSB7fSkpOw0KICAgIH0pKEFjdGlvbnMgPSBTYW1wbGUuQWN0aW9ucyB8fCAoU2FtcGxlLkFjdGlvbnMgPSB7fSkpOw0KfSkoU2FtcGxlIHx8IChTYW1wbGUgPSB7fSkpOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgVGhpbmc7DQogICAgKGZ1bmN0aW9uIChUaGluZykgew0KICAgICAgICB2YXIgV2lkZ2V0czsNCiAgICAgICAgKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQogICAgICAgICAgICBjbGFzcyBGaW5kV2lkZ2V0IHsNCiAgICAgICAgICAgICAgICBnYXIocnVubmVyKSB7IGlmICh0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5uZXIodGhpcyk7DQogICAgICAgICAgICAgICAgfSB9DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoY29kZVRoaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZVRoaW5nID0gY29kZVRoaW5nOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbU5vZGUgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAxDQogICAgICAgICAgICAgICAgICAgIGNvZGVUaGluZy5hZGRXaWRnZXQoImFkZFdpZGdldCIsIHRoaXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnZXREb21Ob2RlKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVzdHJveSgpIHsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBXaWRnZXRzLkZpbmRXaWRnZXQgPSBGaW5kV2lkZ2V0Ow0KICAgICAgICB9KShXaWRnZXRzID0gVGhpbmcuV2lkZ2V0cyB8fCAoVGhpbmcuV2lkZ2V0cyA9IHt9KSk7DQogICAgfSkoVGhpbmcgPSBTYW1wbGUuVGhpbmcgfHwgKFNhbXBsZS5UaGluZyA9IHt9KSk7DQp9KShTYW1wbGUgfHwgKFNhbXBsZSA9IHt9KSk7DQpjbGFzcyBBYnN0cmFjdE1vZGUgew0KICAgIGdldEluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCn0NCihmdW5jdGlvbiAoU2FtcGxlKSB7DQogICAgdmFyIFRoaW5nOw0KICAgIChmdW5jdGlvbiAoVGhpbmcpIHsNCiAgICAgICAgdmFyIExhbmd1YWdlczsNCiAgICAgICAgKGZ1bmN0aW9uIChMYW5ndWFnZXMpIHsNCiAgICAgICAgICAgIHZhciBQbGFpblRleHQ7DQogICAgICAgICAgICAoZnVuY3Rpb24gKFBsYWluVGV4dCkgew0KICAgICAgICAgICAgICAgIGNsYXNzIFN0YXRlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IobW9kZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjbG9uZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVxdWFscyhvdGhlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IG90aGVyOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGdldE1vZGUoKSB7IHJldHVybiBtb2RlOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFBsYWluVGV4dC5TdGF0ZSA9IFN0YXRlOw0KICAgICAgICAgICAgICAgIGNsYXNzIE1vZGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGUgew0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAyDQogICAgICAgICAgICAgICAgICAgIGdldEluaXRpYWxTdGF0ZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGUoc2VsZik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgUGxhaW5UZXh0Lk1vZGUgPSBNb2RlOw0KICAgICAgICAgICAgfSkoUGxhaW5UZXh0ID0gTGFuZ3VhZ2VzLlBsYWluVGV4dCB8fCAoTGFuZ3VhZ2VzLlBsYWluVGV4dCA9IHt9KSk7DQogICAgICAgIH0pKExhbmd1YWdlcyA9IFRoaW5nLkxhbmd1YWdlcyB8fCAoVGhpbmcuTGFuZ3VhZ2VzID0ge30pKTsNCiAgICB9KShUaGluZyA9IFNhbXBsZS5UaGluZyB8fCAoU2FtcGxlLlRoaW5nID0ge30pKTsNCn0pKFNhbXBsZSB8fCAoU2FtcGxlID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlY3Vyc2l2ZUNsYXNzUmVmZXJlbmNlVGVzdC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMEVBQTBFO0FBOEIxRSxJQUFVLE1BQU0sQ0FVZjtBQVZELFdBQVUsTUFBTTtJQUFDLElBQUEsT0FBTyxDQVV2QjtJQVZnQixXQUFBLE9BQU87UUFBQyxJQUFBLEtBQUssQ0FVN0I7UUFWd0IsV0FBQSxPQUFLO1lBQUMsSUFBQSxJQUFJLENBVWxDO1lBVjhCLFdBQUEsSUFBSTtnQkFDbEMsTUFBYSxlQUFlO29CQUVwQixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUV4QixHQUFHLENBQUMsS0FBNkI7d0JBRXZDLE9BQU8sSUFBSSxDQUFDO29CQUNiLENBQUM7aUJBQ0Q7Z0JBUlksS0FBQSxlQUFlLGtCQVEzQixDQUFBO1lBQ0YsQ0FBQyxFQVY4QixJQUFJLEdBQUosUUFBQSxJQUFJLEtBQUosUUFBQSxJQUFJLFFBVWxDO1FBQUQsQ0FBQyxFQVZ3QixLQUFLLEdBQUwsUUFBQSxLQUFLLEtBQUwsUUFBQSxLQUFLLFFBVTdCO0lBQUQsQ0FBQyxFQVZnQixPQUFPLEdBQVAsT0FBQSxPQUFPLEtBQVAsT0FBQSxPQUFPLFFBVXZCO0FBQUQsQ0FBQyxFQVZTLE1BQU0sS0FBTixNQUFNLFFBVWY7QUFFRCxXQUFVLE1BQU07SUFBQyxJQUFBLEtBQUssQ0FvQnJCO0lBcEJnQixXQUFBLEtBQUs7UUFBQyxJQUFBLE9BQU8sQ0FvQjdCO1FBcEJzQixXQUFBLE9BQU87WUFDN0IsTUFBYSxVQUFVO2dCQUVmLEdBQUcsQ0FBQyxNQUF5QyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQUEsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUEsQ0FBQyxDQUFBLENBQUM7Z0JBR3pGLFlBQW9CLFNBQWtDO29CQUFsQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtvQkFEOUMsWUFBTyxHQUFPLElBQUksQ0FBQztvQkFFdkIsYUFBYTtvQkFDYixTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFTSxVQUFVO29CQUNoQixPQUFPLE9BQU8sQ0FBQztnQkFDaEIsQ0FBQztnQkFFTSxPQUFPO2dCQUVkLENBQUM7YUFFRDtZQWxCWSxRQUFBLFVBQVUsYUFrQnRCLENBQUE7UUFDRixDQUFDLEVBcEJzQixPQUFPLEdBQVAsTUFBQSxPQUFPLEtBQVAsTUFBQSxPQUFPLFFBb0I3QjtJQUFELENBQUMsRUFwQmdCLEtBQUssR0FBTCxPQUFBLEtBQUssS0FBTCxPQUFBLEtBQUssUUFvQnJCO0FBQUQsQ0FBQyxFQXBCUyxNQUFNLEtBQU4sTUFBTSxRQW9CZjtBQUdELE1BQU0sWUFBWTtJQUEyQixlQUFlLEtBQWEsT0FBTyxJQUFJLENBQUMsQ0FBQSxDQUFDO0NBQUU7QUFTeEYsV0FBVSxNQUFNO0lBQUMsSUFBQSxLQUFLLENBd0JyQjtJQXhCZ0IsV0FBQSxLQUFLO1FBQUMsSUFBQSxTQUFTLENBd0IvQjtRQXhCc0IsV0FBQSxTQUFTO1lBQUMsSUFBQSxTQUFTLENBd0J6QztZQXhCZ0MsV0FBQSxTQUFTO2dCQUV6QyxNQUFhLEtBQUs7b0JBQ1gsWUFBb0IsSUFBVztvQ0FBWCxJQUFJO29CQUFXLENBQUM7b0JBQ25DLEtBQUs7d0JBQ1gsT0FBTyxJQUFJLENBQUM7b0JBQ2IsQ0FBQztvQkFFTSxNQUFNLENBQUMsS0FBWTt3QkFDekIsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO29CQUN2QixDQUFDO29CQUVNLE9BQU8sS0FBWSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hDO2dCQVhZLFVBQUEsS0FBSyxRQVdqQixDQUFBO2dCQUVELE1BQWEsSUFBSyxTQUFRLFlBQVk7b0JBRXJDLGFBQWE7b0JBQ04sZUFBZTt3QkFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztpQkFHRDtnQkFSWSxVQUFBLElBQUksT0FRaEIsQ0FBQTtZQUNGLENBQUMsRUF4QmdDLFNBQVMsR0FBVCxVQUFBLFNBQVMsS0FBVCxVQUFBLFNBQVMsUUF3QnpDO1FBQUQsQ0FBQyxFQXhCc0IsU0FBUyxHQUFULE1BQUEsU0FBUyxLQUFULE1BQUEsU0FBUyxRQXdCL0I7SUFBRCxDQUFDLEVBeEJnQixLQUFLLEdBQUwsT0FBQSxLQUFLLEtBQUwsT0FBQSxLQUFLLFFBd0JyQjtBQUFELENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmYifQ==,Ly8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXIKLy8gU2NlbmFyaW8gMjogVGVzdCByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoIGNhc3QgYW5kICJ0aGlzIiBwYXJhbWV0ZXIKCgoKZGVjbGFyZSBuYW1lc3BhY2UgU2FtcGxlLlRoaW5nIHsKCglleHBvcnQgaW50ZXJmYWNlIElXaWRnZXQgewoJCWdldERvbU5vZGUoKTogYW55OwoJCWRlc3Ryb3koKTsKCQlnYXIocnVubmVyOih3aWRnZXQ6U2FtcGxlLlRoaW5nLklXaWRnZXQpPT5hbnkpOmFueTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElDb2RlVGhpbmcgewogIAogIAkJZ2V0RG9tTm9kZSgpOiBFbGVtZW50OwoJCQoJCWFkZFdpZGdldCh3aWRnZXRJZDpzdHJpbmcsIHdpZGdldDpJV2lkZ2V0KTsKCgkJCgkJZm9jdXMoKTsgCgkJCgkJLy9hZGRXaWRnZXQod2lkZ2V0OiBTYW1wbGUuVGhpbmcuV2lkZ2V0cy5JV2lkZ2V0KTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24gewoJCXJ1bihUaGluZzpJQ29kZVRoaW5nKTpib29sZWFuOwoJCWdldElkKCk6c3RyaW5nOwoJfQkKfQoKbmFtZXNwYWNlIFNhbXBsZS5BY3Rpb25zLlRoaW5nLkZpbmQgewoJZXhwb3J0IGNsYXNzIFN0YXJ0RmluZEFjdGlvbiBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JQWN0aW9uIHsKCQkKCQlwdWJsaWMgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9CgkJCgkJcHVibGljIHJ1bihUaGluZzpTYW1wbGUuVGhpbmcuSUNvZGVUaGluZyk6Ym9vbGVhbiB7CgoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCm5hbWVzcGFjZSBTYW1wbGUuVGhpbmcuV2lkZ2V0cyB7CglleHBvcnQgY2xhc3MgRmluZFdpZGdldCBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JV2lkZ2V0IHsKCgkJcHVibGljIGdhcihydW5uZXI6KHdpZGdldDpTYW1wbGUuVGhpbmcuSVdpZGdldCk9PmFueSkgeyBpZiAodHJ1ZSkge3JldHVybiBydW5uZXIodGhpcyk7fX0KCQkJCgkJcHJpdmF0ZSBkb21Ob2RlOmFueSA9IG51bGw7CgkJY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlVGhpbmc6IFNhbXBsZS5UaGluZy5JQ29kZVRoaW5nKSB7CgkJICAgIC8vIHNjZW5hcmlvIDEKCQkgICAgY29kZVRoaW5nLmFkZFdpZGdldCgiYWRkV2lkZ2V0IiwgdGhpcyk7CgkJfQoJCQoJCXB1YmxpYyBnZXREb21Ob2RlKCkgewoJCQlyZXR1cm4gZG9tTm9kZTsKCQl9CgkJCgkJcHVibGljIGRlc3Ryb3koKSB7CgoJCX0KCgl9Cn0KCmludGVyZmFjZSBJTW9kZSB7IGdldEluaXRpYWxTdGF0ZSgpOiBJU3RhdGU7fSAKY2xhc3MgQWJzdHJhY3RNb2RlIGltcGxlbWVudHMgSU1vZGUgeyBwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7IHJldHVybiBudWxsO30gfQoKaW50ZXJmYWNlIElTdGF0ZSB7fQoKaW50ZXJmYWNlIFdpbmRvdyB7CiAgICBvcGVuZXI6IFdpbmRvdzsKfQpkZWNsYXJlIHZhciBzZWxmOiBXaW5kb3c7CgpuYW1lc3BhY2UgU2FtcGxlLlRoaW5nLkxhbmd1YWdlcy5QbGFpblRleHQgewoJCglleHBvcnQgY2xhc3MgU3RhdGUgaW1wbGVtZW50cyBJU3RhdGUgewkJCiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlOiBJTW9kZSkgeyB9CgkJcHVibGljIGNsb25lKCk6SVN0YXRlIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlwdWJsaWMgZXF1YWxzKG90aGVyOklTdGF0ZSk6Ym9vbGVhbiB7CgkJCXJldHVybiB0aGlzID09PSBvdGhlcjsKCQl9CgkJCgkJcHVibGljIGdldE1vZGUoKTogSU1vZGUgeyByZXR1cm4gbW9kZTsgfQoJfQoJCglleHBvcnQgY2xhc3MgTW9kZSBleHRlbmRzIEFic3RyYWN0TW9kZSB7CgoJCS8vIHNjZW5hcmlvIDIKCQlwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7CgkJCXJldHVybiBuZXcgU3RhdGUoc2VsZik7CgkJfQoKCgl9Cn0KCg==
\ No newline at end of file
++{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,0EAA0E;AA8B1E,IAAU,MAAM,CAUf;AAVD,WAAU,MAAM;IAAC,IAAA,OAAO,CAUvB;IAVgB,WAAA,OAAO;QAAC,IAAA,KAAK,CAU7B;QAVwB,WAAA,OAAK;YAAC,IAAA,IAAI,CAUlC;YAV8B,WAAA,IAAI;gBAClC,MAAa,eAAe;oBAEpB,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;oBAExB,GAAG,CAAC,KAA6B;wBAEvC,OAAO,IAAI,CAAC;oBACb,CAAC;iBACD;gBARY,oBAAe,kBAQ3B,CAAA;YACF,CAAC,EAV8B,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAUlC;QAAD,CAAC,EAVwB,KAAK,GAAL,aAAK,KAAL,aAAK,QAU7B;IAAD,CAAC,EAVgB,OAAO,GAAP,cAAO,KAAP,cAAO,QAUvB;AAAD,CAAC,EAVS,MAAM,KAAN,MAAM,QAUf;AAED,WAAU,MAAM;IAAC,IAAA,KAAK,CAoBrB;IApBgB,WAAA,KAAK;QAAC,IAAA,OAAO,CAoB7B;QApBsB,WAAA,OAAO;YAC7B,MAAa,UAAU;gBAEf,GAAG,CAAC,MAAyC,IAAI,IAAI,IAAI,EAAE,CAAC;oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC,CAAA,CAAC;gBAGzF,YAAoB,SAAkC;oBAAlC,cAAS,GAAT,SAAS,CAAyB;oBAD9C,YAAO,GAAO,IAAI,CAAC;oBAEvB,aAAa;oBACb,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBAEM,UAAU;oBAChB,OAAO,OAAO,CAAC;gBAChB,CAAC;gBAEM,OAAO;gBAEd,CAAC;aAED;YAlBY,kBAAU,aAkBtB,CAAA;QACF,CAAC,EApBsB,OAAO,GAAP,aAAO,KAAP,aAAO,QAoB7B;IAAD,CAAC,EApBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAoBrB;AAAD,CAAC,EApBS,MAAM,KAAN,MAAM,QAoBf;AAGD,MAAM,YAAY;IAA2B,eAAe,KAAa,OAAO,IAAI,CAAC,CAAA,CAAC;CAAE;AASxF,WAAU,MAAM;IAAC,IAAA,KAAK,CAwBrB;IAxBgB,WAAA,KAAK;QAAC,IAAA,SAAS,CAwB/B;QAxBsB,WAAA,SAAS;YAAC,IAAA,SAAS,CAwBzC;YAxBgC,WAAA,SAAS;gBAEzC,MAAa,KAAK;oBACX,YAAoB,IAAW;oCAAX,IAAI;oBAAW,CAAC;oBACnC,KAAK;wBACX,OAAO,IAAI,CAAC;oBACb,CAAC;oBAEM,MAAM,CAAC,KAAY;wBACzB,OAAO,IAAI,KAAK,KAAK,CAAC;oBACvB,CAAC;oBAEM,OAAO,KAAY,OAAO,IAAI,CAAC,CAAC,CAAC;iBACxC;gBAXY,eAAK,QAWjB,CAAA;gBAED,MAAa,IAAK,SAAQ,YAAY;oBAErC,aAAa;oBACN,eAAe;wBACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;iBAGD;gBARY,cAAI,OAQhB,CAAA;YACF,CAAC,EAxBgC,SAAS,GAAT,mBAAS,KAAT,mBAAS,QAwBzC;QAAD,CAAC,EAxBsB,SAAS,GAAT,eAAS,KAAT,eAAS,QAwB/B;IAAD,CAAC,EAxBgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAwBrB;AAAD,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXINCi8vIFNjZW5hcmlvIDI6IFRlc3QgcmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGwgd2l0aCBjYXN0IGFuZCAidGhpcyIgcGFyYW1ldGVyDQp2YXIgU2FtcGxlOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgQWN0aW9uczsNCiAgICAoZnVuY3Rpb24gKEFjdGlvbnMpIHsNCiAgICAgICAgdmFyIFRoaW5nOw0KICAgICAgICAoZnVuY3Rpb24gKFRoaW5nXzEpIHsNCiAgICAgICAgICAgIHZhciBGaW5kOw0KICAgICAgICAgICAgKGZ1bmN0aW9uIChGaW5kKSB7DQogICAgICAgICAgICAgICAgY2xhc3MgU3RhcnRGaW5kQWN0aW9uIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9DQogICAgICAgICAgICAgICAgICAgIHJ1bihUaGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRmluZC5TdGFydEZpbmRBY3Rpb24gPSBTdGFydEZpbmRBY3Rpb247DQogICAgICAgICAgICB9KShGaW5kID0gVGhpbmdfMS5GaW5kIHx8IChUaGluZ18xLkZpbmQgPSB7fSkpOw0KICAgICAgICB9KShUaGluZyA9IEFjdGlvbnMuVGhpbmcgfHwgKEFjdGlvbnMuVGhpbmcgPSB7fSkpOw0KICAgIH0pKEFjdGlvbnMgPSBTYW1wbGUuQWN0aW9ucyB8fCAoU2FtcGxlLkFjdGlvbnMgPSB7fSkpOw0KfSkoU2FtcGxlIHx8IChTYW1wbGUgPSB7fSkpOw0KKGZ1bmN0aW9uIChTYW1wbGUpIHsNCiAgICB2YXIgVGhpbmc7DQogICAgKGZ1bmN0aW9uIChUaGluZykgew0KICAgICAgICB2YXIgV2lkZ2V0czsNCiAgICAgICAgKGZ1bmN0aW9uIChXaWRnZXRzKSB7DQogICAgICAgICAgICBjbGFzcyBGaW5kV2lkZ2V0IHsNCiAgICAgICAgICAgICAgICBnYXIocnVubmVyKSB7IGlmICh0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5uZXIodGhpcyk7DQogICAgICAgICAgICAgICAgfSB9DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoY29kZVRoaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZVRoaW5nID0gY29kZVRoaW5nOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbU5vZGUgPSBudWxsOw0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAxDQogICAgICAgICAgICAgICAgICAgIGNvZGVUaGluZy5hZGRXaWRnZXQoImFkZFdpZGdldCIsIHRoaXMpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnZXREb21Ob2RlKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVzdHJveSgpIHsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBXaWRnZXRzLkZpbmRXaWRnZXQgPSBGaW5kV2lkZ2V0Ow0KICAgICAgICB9KShXaWRnZXRzID0gVGhpbmcuV2lkZ2V0cyB8fCAoVGhpbmcuV2lkZ2V0cyA9IHt9KSk7DQogICAgfSkoVGhpbmcgPSBTYW1wbGUuVGhpbmcgfHwgKFNhbXBsZS5UaGluZyA9IHt9KSk7DQp9KShTYW1wbGUgfHwgKFNhbXBsZSA9IHt9KSk7DQpjbGFzcyBBYnN0cmFjdE1vZGUgew0KICAgIGdldEluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIG51bGw7IH0NCn0NCihmdW5jdGlvbiAoU2FtcGxlKSB7DQogICAgdmFyIFRoaW5nOw0KICAgIChmdW5jdGlvbiAoVGhpbmcpIHsNCiAgICAgICAgdmFyIExhbmd1YWdlczsNCiAgICAgICAgKGZ1bmN0aW9uIChMYW5ndWFnZXMpIHsNCiAgICAgICAgICAgIHZhciBQbGFpblRleHQ7DQogICAgICAgICAgICAoZnVuY3Rpb24gKFBsYWluVGV4dCkgew0KICAgICAgICAgICAgICAgIGNsYXNzIFN0YXRlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IobW9kZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjbG9uZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVxdWFscyhvdGhlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IG90aGVyOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGdldE1vZGUoKSB7IHJldHVybiBtb2RlOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFBsYWluVGV4dC5TdGF0ZSA9IFN0YXRlOw0KICAgICAgICAgICAgICAgIGNsYXNzIE1vZGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGUgew0KICAgICAgICAgICAgICAgICAgICAvLyBzY2VuYXJpbyAyDQogICAgICAgICAgICAgICAgICAgIGdldEluaXRpYWxTdGF0ZSgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhdGUoc2VsZik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgUGxhaW5UZXh0Lk1vZGUgPSBNb2RlOw0KICAgICAgICAgICAgfSkoUGxhaW5UZXh0ID0gTGFuZ3VhZ2VzLlBsYWluVGV4dCB8fCAoTGFuZ3VhZ2VzLlBsYWluVGV4dCA9IHt9KSk7DQogICAgICAgIH0pKExhbmd1YWdlcyA9IFRoaW5nLkxhbmd1YWdlcyB8fCAoVGhpbmcuTGFuZ3VhZ2VzID0ge30pKTsNCiAgICB9KShUaGluZyA9IFNhbXBsZS5UaGluZyB8fCAoU2FtcGxlLlRoaW5nID0ge30pKTsNCn0pKFNhbXBsZSB8fCAoU2FtcGxlID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlY3Vyc2l2ZUNsYXNzUmVmZXJlbmNlVGVzdC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVjdXJzaXZlQ2xhc3NSZWZlcmVuY2VUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMEVBQTBFO0FBOEIxRSxJQUFVLE1BQU0sQ0FVZjtBQVZELFdBQVUsTUFBTTtJQUFDLElBQUEsT0FBTyxDQVV2QjtJQVZnQixXQUFBLE9BQU87UUFBQyxJQUFBLEtBQUssQ0FVN0I7UUFWd0IsV0FBQSxPQUFLO1lBQUMsSUFBQSxJQUFJLENBVWxDO1lBVjhCLFdBQUEsSUFBSTtnQkFDbEMsTUFBYSxlQUFlO29CQUVwQixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUV4QixHQUFHLENBQUMsS0FBNkI7d0JBRXZDLE9BQU8sSUFBSSxDQUFDO29CQUNiLENBQUM7aUJBQ0Q7Z0JBUlksb0JBQWUsa0JBUTNCLENBQUE7WUFDRixDQUFDLEVBVjhCLElBQUksR0FBSixZQUFJLEtBQUosWUFBSSxRQVVsQztRQUFELENBQUMsRUFWd0IsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBVTdCO0lBQUQsQ0FBQyxFQVZnQixPQUFPLEdBQVAsY0FBTyxLQUFQLGNBQU8sUUFVdkI7QUFBRCxDQUFDLEVBVlMsTUFBTSxLQUFOLE1BQU0sUUFVZjtBQUVELFdBQVUsTUFBTTtJQUFDLElBQUEsS0FBSyxDQW9CckI7SUFwQmdCLFdBQUEsS0FBSztRQUFDLElBQUEsT0FBTyxDQW9CN0I7UUFwQnNCLFdBQUEsT0FBTztZQUM3QixNQUFhLFVBQVU7Z0JBRWYsR0FBRyxDQUFDLE1BQXlDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFBQSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFBQSxDQUFDLENBQUEsQ0FBQztnQkFHekYsWUFBb0IsU0FBa0M7b0JBQWxDLGNBQVMsR0FBVCxTQUFTLENBQXlCO29CQUQ5QyxZQUFPLEdBQU8sSUFBSSxDQUFDO29CQUV2QixhQUFhO29CQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUVNLFVBQVU7b0JBQ2hCLE9BQU8sT0FBTyxDQUFDO2dCQUNoQixDQUFDO2dCQUVNLE9BQU87Z0JBRWQsQ0FBQzthQUVEO1lBbEJZLGtCQUFVLGFBa0J0QixDQUFBO1FBQ0YsQ0FBQyxFQXBCc0IsT0FBTyxHQUFQLGFBQU8sS0FBUCxhQUFPLFFBb0I3QjtJQUFELENBQUMsRUFwQmdCLEtBQUssR0FBTCxZQUFLLEtBQUwsWUFBSyxRQW9CckI7QUFBRCxDQUFDLEVBcEJTLE1BQU0sS0FBTixNQUFNLFFBb0JmO0FBR0QsTUFBTSxZQUFZO0lBQTJCLGVBQWUsS0FBYSxPQUFPLElBQUksQ0FBQyxDQUFBLENBQUM7Q0FBRTtBQVN4RixXQUFVLE1BQU07SUFBQyxJQUFBLEtBQUssQ0F3QnJCO0lBeEJnQixXQUFBLEtBQUs7UUFBQyxJQUFBLFNBQVMsQ0F3Qi9CO1FBeEJzQixXQUFBLFNBQVM7WUFBQyxJQUFBLFNBQVMsQ0F3QnpDO1lBeEJnQyxXQUFBLFNBQVM7Z0JBRXpDLE1BQWEsS0FBSztvQkFDWCxZQUFvQixJQUFXO29DQUFYLElBQUk7b0JBQVcsQ0FBQztvQkFDbkMsS0FBSzt3QkFDWCxPQUFPLElBQUksQ0FBQztvQkFDYixDQUFDO29CQUVNLE1BQU0sQ0FBQyxLQUFZO3dCQUN6QixPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7b0JBQ3ZCLENBQUM7b0JBRU0sT0FBTyxLQUFZLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEM7Z0JBWFksZUFBSyxRQVdqQixDQUFBO2dCQUVELE1BQWEsSUFBSyxTQUFRLFlBQVk7b0JBRXJDLGFBQWE7b0JBQ04sZUFBZTt3QkFDckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztpQkFHRDtnQkFSWSxjQUFJLE9BUWhCLENBQUE7WUFDRixDQUFDLEVBeEJnQyxTQUFTLEdBQVQsbUJBQVMsS0FBVCxtQkFBUyxRQXdCekM7UUFBRCxDQUFDLEVBeEJzQixTQUFTLEdBQVQsZUFBUyxLQUFULGVBQVMsUUF3Qi9CO0lBQUQsQ0FBQyxFQXhCZ0IsS0FBSyxHQUFMLFlBQUssS0FBTCxZQUFLLFFBd0JyQjtBQUFELENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmYifQ==,Ly8gU2NlbmFyaW8gMTogVGVzdCByZXF1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoICJ0aGlzIiBwYXJhbWV0ZXIKLy8gU2NlbmFyaW8gMjogVGVzdCByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbCB3aXRoIGNhc3QgYW5kICJ0aGlzIiBwYXJhbWV0ZXIKCgoKZGVjbGFyZSBuYW1lc3BhY2UgU2FtcGxlLlRoaW5nIHsKCglleHBvcnQgaW50ZXJmYWNlIElXaWRnZXQgewoJCWdldERvbU5vZGUoKTogYW55OwoJCWRlc3Ryb3koKTsKCQlnYXIocnVubmVyOih3aWRnZXQ6U2FtcGxlLlRoaW5nLklXaWRnZXQpPT5hbnkpOmFueTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElDb2RlVGhpbmcgewogIAogIAkJZ2V0RG9tTm9kZSgpOiBFbGVtZW50OwoJCQoJCWFkZFdpZGdldCh3aWRnZXRJZDpzdHJpbmcsIHdpZGdldDpJV2lkZ2V0KTsKCgkJCgkJZm9jdXMoKTsgCgkJCgkJLy9hZGRXaWRnZXQod2lkZ2V0OiBTYW1wbGUuVGhpbmcuV2lkZ2V0cy5JV2lkZ2V0KTsKCX0KCglleHBvcnQgaW50ZXJmYWNlIElBY3Rpb24gewoJCXJ1bihUaGluZzpJQ29kZVRoaW5nKTpib29sZWFuOwoJCWdldElkKCk6c3RyaW5nOwoJfQkKfQoKbmFtZXNwYWNlIFNhbXBsZS5BY3Rpb25zLlRoaW5nLkZpbmQgewoJZXhwb3J0IGNsYXNzIFN0YXJ0RmluZEFjdGlvbiBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JQWN0aW9uIHsKCQkKCQlwdWJsaWMgZ2V0SWQoKSB7IHJldHVybiAieW8iOyB9CgkJCgkJcHVibGljIHJ1bihUaGluZzpTYW1wbGUuVGhpbmcuSUNvZGVUaGluZyk6Ym9vbGVhbiB7CgoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCm5hbWVzcGFjZSBTYW1wbGUuVGhpbmcuV2lkZ2V0cyB7CglleHBvcnQgY2xhc3MgRmluZFdpZGdldCBpbXBsZW1lbnRzIFNhbXBsZS5UaGluZy5JV2lkZ2V0IHsKCgkJcHVibGljIGdhcihydW5uZXI6KHdpZGdldDpTYW1wbGUuVGhpbmcuSVdpZGdldCk9PmFueSkgeyBpZiAodHJ1ZSkge3JldHVybiBydW5uZXIodGhpcyk7fX0KCQkJCgkJcHJpdmF0ZSBkb21Ob2RlOmFueSA9IG51bGw7CgkJY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlVGhpbmc6IFNhbXBsZS5UaGluZy5JQ29kZVRoaW5nKSB7CgkJICAgIC8vIHNjZW5hcmlvIDEKCQkgICAgY29kZVRoaW5nLmFkZFdpZGdldCgiYWRkV2lkZ2V0IiwgdGhpcyk7CgkJfQoJCQoJCXB1YmxpYyBnZXREb21Ob2RlKCkgewoJCQlyZXR1cm4gZG9tTm9kZTsKCQl9CgkJCgkJcHVibGljIGRlc3Ryb3koKSB7CgoJCX0KCgl9Cn0KCmludGVyZmFjZSBJTW9kZSB7IGdldEluaXRpYWxTdGF0ZSgpOiBJU3RhdGU7fSAKY2xhc3MgQWJzdHJhY3RNb2RlIGltcGxlbWVudHMgSU1vZGUgeyBwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7IHJldHVybiBudWxsO30gfQoKaW50ZXJmYWNlIElTdGF0ZSB7fQoKaW50ZXJmYWNlIFdpbmRvdyB7CiAgICBvcGVuZXI6IFdpbmRvdzsKfQpkZWNsYXJlIHZhciBzZWxmOiBXaW5kb3c7CgpuYW1lc3BhY2UgU2FtcGxlLlRoaW5nLkxhbmd1YWdlcy5QbGFpblRleHQgewoJCglleHBvcnQgY2xhc3MgU3RhdGUgaW1wbGVtZW50cyBJU3RhdGUgewkJCiAgICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlOiBJTW9kZSkgeyB9CgkJcHVibGljIGNsb25lKCk6SVN0YXRlIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlwdWJsaWMgZXF1YWxzKG90aGVyOklTdGF0ZSk6Ym9vbGVhbiB7CgkJCXJldHVybiB0aGlzID09PSBvdGhlcjsKCQl9CgkJCgkJcHVibGljIGdldE1vZGUoKTogSU1vZGUgeyByZXR1cm4gbW9kZTsgfQoJfQoJCglleHBvcnQgY2xhc3MgTW9kZSBleHRlbmRzIEFic3RyYWN0TW9kZSB7CgoJCS8vIHNjZW5hcmlvIDIKCQlwdWJsaWMgZ2V0SW5pdGlhbFN0YXRlKCk6IElTdGF0ZSB7CgkJCXJldHVybiBuZXcgU3RhdGUoc2VsZik7CgkJfQoKCgl9Cn0KCg==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt
index 8a0792dbc5a..a8fea05db44 100644
--- a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt
@@ -294,15 +294,13 @@ sourceFile:recursiveClassReferenceTest.ts
---
>>> Find.StartFindAction = StartFindAction;
1->^^^^^^^^^^^^^^^^
-2 > ^^^^^
-3 > ^^^^^^^^^^^^^^^
-4 > ^^^^^^^^^^^^^^^^^^
-5 > ^
-6 > ^^^^^->
+2 > ^^^^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^^^^^^^
+4 > ^
+5 > ^^^^^->
1->
-2 >
-3 > StartFindAction
-4 > implements Sample.Thing.IAction {
+2 > StartFindAction
+3 > implements Sample.Thing.IAction {
>
> public getId() { return "yo"; }
>
@@ -311,12 +309,11 @@ sourceFile:recursiveClassReferenceTest.ts
> return true;
> }
> }
-5 >
+4 >
1->Emitted(18, 17) Source(33, 15) + SourceIndex(0)
-2 >Emitted(18, 22) Source(33, 15) + SourceIndex(0)
-3 >Emitted(18, 37) Source(33, 30) + SourceIndex(0)
-4 >Emitted(18, 55) Source(41, 3) + SourceIndex(0)
-5 >Emitted(18, 56) Source(41, 3) + SourceIndex(0)
+2 >Emitted(18, 37) Source(33, 30) + SourceIndex(0)
+3 >Emitted(18, 55) Source(41, 3) + SourceIndex(0)
+4 >Emitted(18, 56) Source(41, 3) + SourceIndex(0)
---
>>> })(Find = Thing_1.Find || (Thing_1.Find = {}));
1->^^^^^^^^^^^^
@@ -324,24 +321,20 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^
5 > ^^^
-6 > ^^^^^^^^
-7 > ^^^^
-8 > ^^^^^
-9 > ^^^^^^^^
-10> ^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > Find
5 >
-6 >
-7 > Find
-8 >
-9 >
-10> Find
-11> {
+6 > Find
+7 >
+8 > Find
+9 > {
> export class StartFindAction implements Sample.Thing.IAction {
>
> public getId() { return "yo"; }
@@ -357,12 +350,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(19, 16) Source(32, 32) + SourceIndex(0)
4 >Emitted(19, 20) Source(32, 36) + SourceIndex(0)
5 >Emitted(19, 23) Source(32, 32) + SourceIndex(0)
-6 >Emitted(19, 31) Source(32, 32) + SourceIndex(0)
-7 >Emitted(19, 35) Source(32, 36) + SourceIndex(0)
-8 >Emitted(19, 40) Source(32, 32) + SourceIndex(0)
-9 >Emitted(19, 48) Source(32, 32) + SourceIndex(0)
-10>Emitted(19, 52) Source(32, 36) + SourceIndex(0)
-11>Emitted(19, 60) Source(42, 2) + SourceIndex(0)
+6 >Emitted(19, 35) Source(32, 36) + SourceIndex(0)
+7 >Emitted(19, 40) Source(32, 32) + SourceIndex(0)
+8 >Emitted(19, 52) Source(32, 36) + SourceIndex(0)
+9 >Emitted(19, 60) Source(42, 2) + SourceIndex(0)
---
>>> })(Thing = Actions.Thing || (Actions.Thing = {}));
1 >^^^^^^^^
@@ -370,24 +361,20 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^
5 > ^^^
-6 > ^^^^^^^^
-7 > ^^^^^
-8 > ^^^^^
-9 > ^^^^^^^^
-10> ^^^^^
-11> ^^^^^^^^
-12> ^->
+6 > ^^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^^
+9 > ^^^^^^^^
+10> ^->
1 >
2 > }
3 >
4 > Thing
5 >
-6 >
-7 > Thing
-8 >
-9 >
-10> Thing
-11> .Find {
+6 > Thing
+7 >
+8 > Thing
+9 > .Find {
> export class StartFindAction implements Sample.Thing.IAction {
>
> public getId() { return "yo"; }
@@ -403,12 +390,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(20, 12) Source(32, 26) + SourceIndex(0)
4 >Emitted(20, 17) Source(32, 31) + SourceIndex(0)
5 >Emitted(20, 20) Source(32, 26) + SourceIndex(0)
-6 >Emitted(20, 28) Source(32, 26) + SourceIndex(0)
-7 >Emitted(20, 33) Source(32, 31) + SourceIndex(0)
-8 >Emitted(20, 38) Source(32, 26) + SourceIndex(0)
-9 >Emitted(20, 46) Source(32, 26) + SourceIndex(0)
-10>Emitted(20, 51) Source(32, 31) + SourceIndex(0)
-11>Emitted(20, 59) Source(42, 2) + SourceIndex(0)
+6 >Emitted(20, 33) Source(32, 31) + SourceIndex(0)
+7 >Emitted(20, 38) Source(32, 26) + SourceIndex(0)
+8 >Emitted(20, 51) Source(32, 31) + SourceIndex(0)
+9 >Emitted(20, 59) Source(42, 2) + SourceIndex(0)
---
>>> })(Actions = Sample.Actions || (Sample.Actions = {}));
1->^^^^
@@ -416,23 +401,19 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^^^
5 > ^^^
-6 > ^^^^^^^
-7 > ^^^^^^^
-8 > ^^^^^
-9 > ^^^^^^^
-10> ^^^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^^^
+9 > ^^^^^^^^
1->
2 > }
3 >
4 > Actions
5 >
-6 >
-7 > Actions
-8 >
-9 >
-10> Actions
-11> .Thing.Find {
+6 > Actions
+7 >
+8 > Actions
+9 > .Thing.Find {
> export class StartFindAction implements Sample.Thing.IAction {
>
> public getId() { return "yo"; }
@@ -448,12 +429,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(21, 8) Source(32, 18) + SourceIndex(0)
4 >Emitted(21, 15) Source(32, 25) + SourceIndex(0)
5 >Emitted(21, 18) Source(32, 18) + SourceIndex(0)
-6 >Emitted(21, 25) Source(32, 18) + SourceIndex(0)
-7 >Emitted(21, 32) Source(32, 25) + SourceIndex(0)
-8 >Emitted(21, 37) Source(32, 18) + SourceIndex(0)
-9 >Emitted(21, 44) Source(32, 18) + SourceIndex(0)
-10>Emitted(21, 51) Source(32, 25) + SourceIndex(0)
-11>Emitted(21, 59) Source(42, 2) + SourceIndex(0)
+6 >Emitted(21, 32) Source(32, 25) + SourceIndex(0)
+7 >Emitted(21, 37) Source(32, 18) + SourceIndex(0)
+8 >Emitted(21, 51) Source(32, 25) + SourceIndex(0)
+9 >Emitted(21, 59) Source(42, 2) + SourceIndex(0)
---
>>>})(Sample || (Sample = {}));
1 >
@@ -846,15 +825,13 @@ sourceFile:recursiveClassReferenceTest.ts
---
>>> Widgets.FindWidget = FindWidget;
1->^^^^^^^^^^^^
-2 > ^^^^^^^^
-3 > ^^^^^^^^^^
-4 > ^^^^^^^^^^^^^
-5 > ^
-6 > ^^^^^^^^^^^^^^^^^->
+2 > ^^^^^^^^^^^^^^^^^^
+3 > ^^^^^^^^^^^^^
+4 > ^
+5 > ^^^^^^^^^^^^^^^^^->
1->
-2 >
-3 > FindWidget
-4 > implements Sample.Thing.IWidget {
+2 > FindWidget
+3 > implements Sample.Thing.IWidget {
>
> public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
>
@@ -873,12 +850,11 @@ sourceFile:recursiveClassReferenceTest.ts
> }
>
> }
-5 >
+4 >
1->Emitted(44, 13) Source(45, 15) + SourceIndex(0)
-2 >Emitted(44, 21) Source(45, 15) + SourceIndex(0)
-3 >Emitted(44, 31) Source(45, 25) + SourceIndex(0)
-4 >Emitted(44, 44) Source(63, 3) + SourceIndex(0)
-5 >Emitted(44, 45) Source(63, 3) + SourceIndex(0)
+2 >Emitted(44, 31) Source(45, 25) + SourceIndex(0)
+3 >Emitted(44, 44) Source(63, 3) + SourceIndex(0)
+4 >Emitted(44, 45) Source(63, 3) + SourceIndex(0)
---
>>> })(Widgets = Thing.Widgets || (Thing.Widgets = {}));
1->^^^^^^^^
@@ -886,24 +862,20 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^^^
5 > ^^^
-6 > ^^^^^^
-7 > ^^^^^^^
-8 > ^^^^^
-9 > ^^^^^^
-10> ^^^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > Widgets
5 >
-6 >
-7 > Widgets
-8 >
-9 >
-10> Widgets
-11> {
+6 > Widgets
+7 >
+8 > Widgets
+9 > {
> export class FindWidget implements Sample.Thing.IWidget {
>
> public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
@@ -929,12 +901,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(45, 12) Source(44, 24) + SourceIndex(0)
4 >Emitted(45, 19) Source(44, 31) + SourceIndex(0)
5 >Emitted(45, 22) Source(44, 24) + SourceIndex(0)
-6 >Emitted(45, 28) Source(44, 24) + SourceIndex(0)
-7 >Emitted(45, 35) Source(44, 31) + SourceIndex(0)
-8 >Emitted(45, 40) Source(44, 24) + SourceIndex(0)
-9 >Emitted(45, 46) Source(44, 24) + SourceIndex(0)
-10>Emitted(45, 53) Source(44, 31) + SourceIndex(0)
-11>Emitted(45, 61) Source(64, 2) + SourceIndex(0)
+6 >Emitted(45, 35) Source(44, 31) + SourceIndex(0)
+7 >Emitted(45, 40) Source(44, 24) + SourceIndex(0)
+8 >Emitted(45, 53) Source(44, 31) + SourceIndex(0)
+9 >Emitted(45, 61) Source(64, 2) + SourceIndex(0)
---
>>> })(Thing = Sample.Thing || (Sample.Thing = {}));
1 >^^^^
@@ -942,23 +912,19 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^
5 > ^^^
-6 > ^^^^^^^
-7 > ^^^^^
-8 > ^^^^^
-9 > ^^^^^^^
-10> ^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^
+9 > ^^^^^^^^
1 >
2 > }
3 >
4 > Thing
5 >
-6 >
-7 > Thing
-8 >
-9 >
-10> Thing
-11> .Widgets {
+6 > Thing
+7 >
+8 > Thing
+9 > .Widgets {
> export class FindWidget implements Sample.Thing.IWidget {
>
> public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
@@ -984,12 +950,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(46, 8) Source(44, 18) + SourceIndex(0)
4 >Emitted(46, 13) Source(44, 23) + SourceIndex(0)
5 >Emitted(46, 16) Source(44, 18) + SourceIndex(0)
-6 >Emitted(46, 23) Source(44, 18) + SourceIndex(0)
-7 >Emitted(46, 28) Source(44, 23) + SourceIndex(0)
-8 >Emitted(46, 33) Source(44, 18) + SourceIndex(0)
-9 >Emitted(46, 40) Source(44, 18) + SourceIndex(0)
-10>Emitted(46, 45) Source(44, 23) + SourceIndex(0)
-11>Emitted(46, 53) Source(64, 2) + SourceIndex(0)
+6 >Emitted(46, 28) Source(44, 23) + SourceIndex(0)
+7 >Emitted(46, 33) Source(44, 18) + SourceIndex(0)
+8 >Emitted(46, 45) Source(44, 23) + SourceIndex(0)
+9 >Emitted(46, 53) Source(64, 2) + SourceIndex(0)
---
>>>})(Sample || (Sample = {}));
1 >
@@ -1416,15 +1380,13 @@ sourceFile:recursiveClassReferenceTest.ts
---
>>> PlainText.State = State;
1->^^^^^^^^^^^^^^^^
-2 > ^^^^^^^^^^
-3 > ^^^^^
-4 > ^^^^^^^^
-5 > ^
-6 > ^^^^^^^^^^->
+2 > ^^^^^^^^^^^^^^^
+3 > ^^^^^^^^
+4 > ^
+5 > ^^^^^^^^^^->
1->
-2 >
-3 > State
-4 > implements IState {
+2 > State
+3 > implements IState {
> constructor(private mode: IMode) { }
> public clone():IState {
> return this;
@@ -1436,12 +1398,11 @@ sourceFile:recursiveClassReferenceTest.ts
>
> public getMode(): IMode { return mode; }
> }
-5 >
+4 >
1->Emitted(70, 17) Source(78, 15) + SourceIndex(0)
-2 >Emitted(70, 27) Source(78, 15) + SourceIndex(0)
-3 >Emitted(70, 32) Source(78, 20) + SourceIndex(0)
-4 >Emitted(70, 40) Source(89, 3) + SourceIndex(0)
-5 >Emitted(70, 41) Source(89, 3) + SourceIndex(0)
+2 >Emitted(70, 32) Source(78, 20) + SourceIndex(0)
+3 >Emitted(70, 40) Source(89, 3) + SourceIndex(0)
+4 >Emitted(70, 41) Source(89, 3) + SourceIndex(0)
---
>>> class Mode extends AbstractMode {
1->^^^^^^^^^^^^^^^^
@@ -1530,15 +1491,13 @@ sourceFile:recursiveClassReferenceTest.ts
---
>>> PlainText.Mode = Mode;
1->^^^^^^^^^^^^^^^^
-2 > ^^^^^^^^^^
-3 > ^^^^
-4 > ^^^^^^^
-5 > ^
-6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+2 > ^^^^^^^^^^^^^^
+3 > ^^^^^^^
+4 > ^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
-2 >
-3 > Mode
-4 > extends AbstractMode {
+2 > Mode
+3 > extends AbstractMode {
>
> // scenario 2
> public getInitialState(): IState {
@@ -1547,12 +1506,11 @@ sourceFile:recursiveClassReferenceTest.ts
>
>
> }
-5 >
+4 >
1->Emitted(77, 17) Source(91, 15) + SourceIndex(0)
-2 >Emitted(77, 27) Source(91, 15) + SourceIndex(0)
-3 >Emitted(77, 31) Source(91, 19) + SourceIndex(0)
-4 >Emitted(77, 38) Source(99, 3) + SourceIndex(0)
-5 >Emitted(77, 39) Source(99, 3) + SourceIndex(0)
+2 >Emitted(77, 31) Source(91, 19) + SourceIndex(0)
+3 >Emitted(77, 38) Source(99, 3) + SourceIndex(0)
+4 >Emitted(77, 39) Source(99, 3) + SourceIndex(0)
---
>>> })(PlainText = Languages.PlainText || (Languages.PlainText = {}));
1->^^^^^^^^^^^^
@@ -1560,24 +1518,20 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^^^^^
5 > ^^^
-6 > ^^^^^^^^^^
-7 > ^^^^^^^^^
-8 > ^^^^^
-9 > ^^^^^^^^^^
-10> ^^^^^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^^^^^^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > PlainText
5 >
-6 >
-7 > PlainText
-8 >
-9 >
-10> PlainText
-11> {
+6 > PlainText
+7 >
+8 > PlainText
+9 > {
>
> export class State implements IState {
> constructor(private mode: IMode) { }
@@ -1607,12 +1561,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(78, 16) Source(76, 34) + SourceIndex(0)
4 >Emitted(78, 25) Source(76, 43) + SourceIndex(0)
5 >Emitted(78, 28) Source(76, 34) + SourceIndex(0)
-6 >Emitted(78, 38) Source(76, 34) + SourceIndex(0)
-7 >Emitted(78, 47) Source(76, 43) + SourceIndex(0)
-8 >Emitted(78, 52) Source(76, 34) + SourceIndex(0)
-9 >Emitted(78, 62) Source(76, 34) + SourceIndex(0)
-10>Emitted(78, 71) Source(76, 43) + SourceIndex(0)
-11>Emitted(78, 79) Source(100, 2) + SourceIndex(0)
+6 >Emitted(78, 47) Source(76, 43) + SourceIndex(0)
+7 >Emitted(78, 52) Source(76, 34) + SourceIndex(0)
+8 >Emitted(78, 71) Source(76, 43) + SourceIndex(0)
+9 >Emitted(78, 79) Source(100, 2) + SourceIndex(0)
---
>>> })(Languages = Thing.Languages || (Thing.Languages = {}));
1 >^^^^^^^^
@@ -1620,23 +1572,19 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^^^^^
5 > ^^^
-6 > ^^^^^^
-7 > ^^^^^^^^^
-8 > ^^^^^
-9 > ^^^^^^
-10> ^^^^^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^^^^
+9 > ^^^^^^^^
1 >
2 > }
3 >
4 > Languages
5 >
-6 >
-7 > Languages
-8 >
-9 >
-10> Languages
-11> .PlainText {
+6 > Languages
+7 >
+8 > Languages
+9 > .PlainText {
>
> export class State implements IState {
> constructor(private mode: IMode) { }
@@ -1666,12 +1614,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(79, 12) Source(76, 24) + SourceIndex(0)
4 >Emitted(79, 21) Source(76, 33) + SourceIndex(0)
5 >Emitted(79, 24) Source(76, 24) + SourceIndex(0)
-6 >Emitted(79, 30) Source(76, 24) + SourceIndex(0)
-7 >Emitted(79, 39) Source(76, 33) + SourceIndex(0)
-8 >Emitted(79, 44) Source(76, 24) + SourceIndex(0)
-9 >Emitted(79, 50) Source(76, 24) + SourceIndex(0)
-10>Emitted(79, 59) Source(76, 33) + SourceIndex(0)
-11>Emitted(79, 67) Source(100, 2) + SourceIndex(0)
+6 >Emitted(79, 39) Source(76, 33) + SourceIndex(0)
+7 >Emitted(79, 44) Source(76, 24) + SourceIndex(0)
+8 >Emitted(79, 59) Source(76, 33) + SourceIndex(0)
+9 >Emitted(79, 67) Source(100, 2) + SourceIndex(0)
---
>>> })(Thing = Sample.Thing || (Sample.Thing = {}));
1 >^^^^
@@ -1679,23 +1625,19 @@ sourceFile:recursiveClassReferenceTest.ts
3 > ^^
4 > ^^^^^
5 > ^^^
-6 > ^^^^^^^
-7 > ^^^^^
-8 > ^^^^^
-9 > ^^^^^^^
-10> ^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^^^^
+9 > ^^^^^^^^
1 >
2 > }
3 >
4 > Thing
5 >
-6 >
-7 > Thing
-8 >
-9 >
-10> Thing
-11> .Languages.PlainText {
+6 > Thing
+7 >
+8 > Thing
+9 > .Languages.PlainText {
>
> export class State implements IState {
> constructor(private mode: IMode) { }
@@ -1725,12 +1667,10 @@ sourceFile:recursiveClassReferenceTest.ts
3 >Emitted(80, 8) Source(76, 18) + SourceIndex(0)
4 >Emitted(80, 13) Source(76, 23) + SourceIndex(0)
5 >Emitted(80, 16) Source(76, 18) + SourceIndex(0)
-6 >Emitted(80, 23) Source(76, 18) + SourceIndex(0)
-7 >Emitted(80, 28) Source(76, 23) + SourceIndex(0)
-8 >Emitted(80, 33) Source(76, 18) + SourceIndex(0)
-9 >Emitted(80, 40) Source(76, 18) + SourceIndex(0)
-10>Emitted(80, 45) Source(76, 23) + SourceIndex(0)
-11>Emitted(80, 53) Source(100, 2) + SourceIndex(0)
+6 >Emitted(80, 28) Source(76, 23) + SourceIndex(0)
+7 >Emitted(80, 33) Source(76, 18) + SourceIndex(0)
+8 >Emitted(80, 45) Source(76, 23) + SourceIndex(0)
+9 >Emitted(80, 53) Source(100, 2) + SourceIndex(0)
---
>>>})(Sample || (Sample = {}));
1 >
diff --git a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt.diff
index b3797b502b2..e865c648087 100644
--- a/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/recursiveClassReferenceTest.sourcemap.txt.diff
@@ -1,333 +1,6 @@
--- old.recursiveClassReferenceTest.sourcemap.txt
+++ new.recursiveClassReferenceTest.sourcemap.txt
-@@= skipped -293, +293 lines =@@
- ---
- >>> Find.StartFindAction = StartFindAction;
- 1->^^^^^^^^^^^^^^^^
--2 > ^^^^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^^^^^^^
--4 > ^
--5 > ^^^^^->
-+2 > ^^^^^
-+3 > ^^^^^^^^^^^^^^^
-+4 > ^^^^^^^^^^^^^^^^^^
-+5 > ^
-+6 > ^^^^^->
- 1->
--2 > StartFindAction
--3 > implements Sample.Thing.IAction {
-+2 >
-+3 > StartFindAction
-+4 > implements Sample.Thing.IAction {
- >
- > public getId() { return "yo"; }
- >
-@@= skipped -15, +17 lines =@@
- > return true;
- > }
- > }
--4 >
-+5 >
- 1->Emitted(18, 17) Source(33, 15) + SourceIndex(0)
--2 >Emitted(18, 37) Source(33, 30) + SourceIndex(0)
--3 >Emitted(18, 55) Source(41, 3) + SourceIndex(0)
--4 >Emitted(18, 56) Source(41, 3) + SourceIndex(0)
-+2 >Emitted(18, 22) Source(33, 15) + SourceIndex(0)
-+3 >Emitted(18, 37) Source(33, 30) + SourceIndex(0)
-+4 >Emitted(18, 55) Source(41, 3) + SourceIndex(0)
-+5 >Emitted(18, 56) Source(41, 3) + SourceIndex(0)
- ---
- >>> })(Find = Thing_1.Find || (Thing_1.Find = {}));
- 1->^^^^^^^^^^^^
-@@= skipped -12, +13 lines =@@
- 3 > ^^
- 4 > ^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^^^
-+7 > ^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^^
-+10> ^^^^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > Find
- 5 >
--6 > Find
--7 >
--8 > Find
--9 > {
-+6 >
-+7 > Find
-+8 >
-+9 >
-+10> Find
-+11> {
- > export class StartFindAction implements Sample.Thing.IAction {
- >
- > public getId() { return "yo"; }
-@@= skipped -29, +33 lines =@@
- 3 >Emitted(19, 16) Source(32, 32) + SourceIndex(0)
- 4 >Emitted(19, 20) Source(32, 36) + SourceIndex(0)
- 5 >Emitted(19, 23) Source(32, 32) + SourceIndex(0)
--6 >Emitted(19, 35) Source(32, 36) + SourceIndex(0)
--7 >Emitted(19, 40) Source(32, 32) + SourceIndex(0)
--8 >Emitted(19, 52) Source(32, 36) + SourceIndex(0)
--9 >Emitted(19, 60) Source(42, 2) + SourceIndex(0)
-+6 >Emitted(19, 31) Source(32, 32) + SourceIndex(0)
-+7 >Emitted(19, 35) Source(32, 36) + SourceIndex(0)
-+8 >Emitted(19, 40) Source(32, 32) + SourceIndex(0)
-+9 >Emitted(19, 48) Source(32, 32) + SourceIndex(0)
-+10>Emitted(19, 52) Source(32, 36) + SourceIndex(0)
-+11>Emitted(19, 60) Source(42, 2) + SourceIndex(0)
- ---
- >>> })(Thing = Actions.Thing || (Actions.Thing = {}));
- 1 >^^^^^^^^
-@@= skipped -11, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^^
--9 > ^^^^^^^^
--10> ^->
-+6 > ^^^^^^^^
-+7 > ^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^^
-+10> ^^^^^
-+11> ^^^^^^^^
-+12> ^->
- 1 >
- 2 > }
- 3 >
- 4 > Thing
- 5 >
--6 > Thing
--7 >
--8 > Thing
--9 > .Find {
-+6 >
-+7 > Thing
-+8 >
-+9 >
-+10> Thing
-+11> .Find {
- > export class StartFindAction implements Sample.Thing.IAction {
- >
- > public getId() { return "yo"; }
-@@= skipped -29, +33 lines =@@
- 3 >Emitted(20, 12) Source(32, 26) + SourceIndex(0)
- 4 >Emitted(20, 17) Source(32, 31) + SourceIndex(0)
- 5 >Emitted(20, 20) Source(32, 26) + SourceIndex(0)
--6 >Emitted(20, 33) Source(32, 31) + SourceIndex(0)
--7 >Emitted(20, 38) Source(32, 26) + SourceIndex(0)
--8 >Emitted(20, 51) Source(32, 31) + SourceIndex(0)
--9 >Emitted(20, 59) Source(42, 2) + SourceIndex(0)
-+6 >Emitted(20, 28) Source(32, 26) + SourceIndex(0)
-+7 >Emitted(20, 33) Source(32, 31) + SourceIndex(0)
-+8 >Emitted(20, 38) Source(32, 26) + SourceIndex(0)
-+9 >Emitted(20, 46) Source(32, 26) + SourceIndex(0)
-+10>Emitted(20, 51) Source(32, 31) + SourceIndex(0)
-+11>Emitted(20, 59) Source(42, 2) + SourceIndex(0)
- ---
- >>> })(Actions = Sample.Actions || (Sample.Actions = {}));
- 1->^^^^
-@@= skipped -11, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^^
-+7 > ^^^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^
-+10> ^^^^^^^
-+11> ^^^^^^^^
- 1->
- 2 > }
- 3 >
- 4 > Actions
- 5 >
--6 > Actions
--7 >
--8 > Actions
--9 > .Thing.Find {
-+6 >
-+7 > Actions
-+8 >
-+9 >
-+10> Actions
-+11> .Thing.Find {
- > export class StartFindAction implements Sample.Thing.IAction {
- >
- > public getId() { return "yo"; }
-@@= skipped -28, +32 lines =@@
- 3 >Emitted(21, 8) Source(32, 18) + SourceIndex(0)
- 4 >Emitted(21, 15) Source(32, 25) + SourceIndex(0)
- 5 >Emitted(21, 18) Source(32, 18) + SourceIndex(0)
--6 >Emitted(21, 32) Source(32, 25) + SourceIndex(0)
--7 >Emitted(21, 37) Source(32, 18) + SourceIndex(0)
--8 >Emitted(21, 51) Source(32, 25) + SourceIndex(0)
--9 >Emitted(21, 59) Source(42, 2) + SourceIndex(0)
-+6 >Emitted(21, 25) Source(32, 18) + SourceIndex(0)
-+7 >Emitted(21, 32) Source(32, 25) + SourceIndex(0)
-+8 >Emitted(21, 37) Source(32, 18) + SourceIndex(0)
-+9 >Emitted(21, 44) Source(32, 18) + SourceIndex(0)
-+10>Emitted(21, 51) Source(32, 25) + SourceIndex(0)
-+11>Emitted(21, 59) Source(42, 2) + SourceIndex(0)
- ---
- >>>})(Sample || (Sample = {}));
- 1 >
-@@= skipped -396, +398 lines =@@
- ---
- >>> Widgets.FindWidget = FindWidget;
- 1->^^^^^^^^^^^^
--2 > ^^^^^^^^^^^^^^^^^^
--3 > ^^^^^^^^^^^^^
--4 > ^
--5 > ^^^^^^^^^^^^^^^^^->
-+2 > ^^^^^^^^
-+3 > ^^^^^^^^^^
-+4 > ^^^^^^^^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^^^^^^^->
- 1->
--2 > FindWidget
--3 > implements Sample.Thing.IWidget {
-+2 >
-+3 > FindWidget
-+4 > implements Sample.Thing.IWidget {
- >
- > public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
- >
-@@= skipped -25, +27 lines =@@
- > }
- >
- > }
--4 >
-+5 >
- 1->Emitted(44, 13) Source(45, 15) + SourceIndex(0)
--2 >Emitted(44, 31) Source(45, 25) + SourceIndex(0)
--3 >Emitted(44, 44) Source(63, 3) + SourceIndex(0)
--4 >Emitted(44, 45) Source(63, 3) + SourceIndex(0)
-+2 >Emitted(44, 21) Source(45, 15) + SourceIndex(0)
-+3 >Emitted(44, 31) Source(45, 25) + SourceIndex(0)
-+4 >Emitted(44, 44) Source(63, 3) + SourceIndex(0)
-+5 >Emitted(44, 45) Source(63, 3) + SourceIndex(0)
- ---
- >>> })(Widgets = Thing.Widgets || (Thing.Widgets = {}));
- 1->^^^^^^^^
-@@= skipped -12, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^
-+7 > ^^^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^
-+10> ^^^^^^^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > Widgets
- 5 >
--6 > Widgets
--7 >
--8 > Widgets
--9 > {
-+6 >
-+7 > Widgets
-+8 >
-+9 >
-+10> Widgets
-+11> {
- > export class FindWidget implements Sample.Thing.IWidget {
- >
- > public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
-@@= skipped -39, +43 lines =@@
- 3 >Emitted(45, 12) Source(44, 24) + SourceIndex(0)
- 4 >Emitted(45, 19) Source(44, 31) + SourceIndex(0)
- 5 >Emitted(45, 22) Source(44, 24) + SourceIndex(0)
--6 >Emitted(45, 35) Source(44, 31) + SourceIndex(0)
--7 >Emitted(45, 40) Source(44, 24) + SourceIndex(0)
--8 >Emitted(45, 53) Source(44, 31) + SourceIndex(0)
--9 >Emitted(45, 61) Source(64, 2) + SourceIndex(0)
-+6 >Emitted(45, 28) Source(44, 24) + SourceIndex(0)
-+7 >Emitted(45, 35) Source(44, 31) + SourceIndex(0)
-+8 >Emitted(45, 40) Source(44, 24) + SourceIndex(0)
-+9 >Emitted(45, 46) Source(44, 24) + SourceIndex(0)
-+10>Emitted(45, 53) Source(44, 31) + SourceIndex(0)
-+11>Emitted(45, 61) Source(64, 2) + SourceIndex(0)
- ---
- >>> })(Thing = Sample.Thing || (Sample.Thing = {}));
- 1 >^^^^
-@@= skipped -11, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^^
-+7 > ^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^
-+10> ^^^^^
-+11> ^^^^^^^^
- 1 >
- 2 > }
- 3 >
- 4 > Thing
- 5 >
--6 > Thing
--7 >
--8 > Thing
--9 > .Widgets {
-+6 >
-+7 > Thing
-+8 >
-+9 >
-+10> Thing
-+11> .Widgets {
- > export class FindWidget implements Sample.Thing.IWidget {
- >
- > public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
-@@= skipped -38, +42 lines =@@
- 3 >Emitted(46, 8) Source(44, 18) + SourceIndex(0)
- 4 >Emitted(46, 13) Source(44, 23) + SourceIndex(0)
- 5 >Emitted(46, 16) Source(44, 18) + SourceIndex(0)
--6 >Emitted(46, 28) Source(44, 23) + SourceIndex(0)
--7 >Emitted(46, 33) Source(44, 18) + SourceIndex(0)
--8 >Emitted(46, 45) Source(44, 23) + SourceIndex(0)
--9 >Emitted(46, 53) Source(64, 2) + SourceIndex(0)
-+6 >Emitted(46, 23) Source(44, 18) + SourceIndex(0)
-+7 >Emitted(46, 28) Source(44, 23) + SourceIndex(0)
-+8 >Emitted(46, 33) Source(44, 18) + SourceIndex(0)
-+9 >Emitted(46, 40) Source(44, 18) + SourceIndex(0)
-+10>Emitted(46, 45) Source(44, 23) + SourceIndex(0)
-+11>Emitted(46, 53) Source(64, 2) + SourceIndex(0)
- ---
- >>>})(Sample || (Sample = {}));
- 1 >
-@@= skipped -294, +296 lines =@@
+@@= skipped -1243, +1243 lines =@@
3 >Emitted(59, 37) Source(79, 40) + SourceIndex(0)
---
>>> this.mode = mode;
@@ -360,230 +33,4 @@
+1 >: IMode) {
2 > }
1 >Emitted(61, 21) Source(79, 44) + SourceIndex(0)
- 2 >Emitted(61, 22) Source(79, 45) + SourceIndex(0)
-@@= skipped -145, +136 lines =@@
- ---
- >>> PlainText.State = State;
- 1->^^^^^^^^^^^^^^^^
--2 > ^^^^^^^^^^^^^^^
--3 > ^^^^^^^^
--4 > ^
--5 > ^^^^^^^^^^->
-+2 > ^^^^^^^^^^
-+3 > ^^^^^
-+4 > ^^^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^->
- 1->
--2 > State
--3 > implements IState {
-+2 >
-+3 > State
-+4 > implements IState {
- > constructor(private mode: IMode) { }
- > public clone():IState {
- > return this;
-@@= skipped -18, +20 lines =@@
- >
- > public getMode(): IMode { return mode; }
- > }
--4 >
-+5 >
- 1->Emitted(70, 17) Source(78, 15) + SourceIndex(0)
--2 >Emitted(70, 32) Source(78, 20) + SourceIndex(0)
--3 >Emitted(70, 40) Source(89, 3) + SourceIndex(0)
--4 >Emitted(70, 41) Source(89, 3) + SourceIndex(0)
-+2 >Emitted(70, 27) Source(78, 15) + SourceIndex(0)
-+3 >Emitted(70, 32) Source(78, 20) + SourceIndex(0)
-+4 >Emitted(70, 40) Source(89, 3) + SourceIndex(0)
-+5 >Emitted(70, 41) Source(89, 3) + SourceIndex(0)
- ---
- >>> class Mode extends AbstractMode {
- 1->^^^^^^^^^^^^^^^^
-@@= skipped -93, +94 lines =@@
- ---
- >>> PlainText.Mode = Mode;
- 1->^^^^^^^^^^^^^^^^
--2 > ^^^^^^^^^^^^^^
--3 > ^^^^^^^
--4 > ^
--5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+2 > ^^^^^^^^^^
-+3 > ^^^^
-+4 > ^^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
- 1->
--2 > Mode
--3 > extends AbstractMode {
-+2 >
-+3 > Mode
-+4 > extends AbstractMode {
- >
- > // scenario 2
- > public getInitialState(): IState {
-@@= skipped -15, +17 lines =@@
- >
- >
- > }
--4 >
-+5 >
- 1->Emitted(77, 17) Source(91, 15) + SourceIndex(0)
--2 >Emitted(77, 31) Source(91, 19) + SourceIndex(0)
--3 >Emitted(77, 38) Source(99, 3) + SourceIndex(0)
--4 >Emitted(77, 39) Source(99, 3) + SourceIndex(0)
-+2 >Emitted(77, 27) Source(91, 15) + SourceIndex(0)
-+3 >Emitted(77, 31) Source(91, 19) + SourceIndex(0)
-+4 >Emitted(77, 38) Source(99, 3) + SourceIndex(0)
-+5 >Emitted(77, 39) Source(99, 3) + SourceIndex(0)
- ---
- >>> })(PlainText = Languages.PlainText || (Languages.PlainText = {}));
- 1->^^^^^^^^^^^^
-@@= skipped -12, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^^^^^
-+7 > ^^^^^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^^^^
-+10> ^^^^^^^^^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > PlainText
- 5 >
--6 > PlainText
--7 >
--8 > PlainText
--9 > {
-+6 >
-+7 > PlainText
-+8 >
-+9 >
-+10> PlainText
-+11> {
- >
- > export class State implements IState {
- > constructor(private mode: IMode) { }
-@@= skipped -43, +47 lines =@@
- 3 >Emitted(78, 16) Source(76, 34) + SourceIndex(0)
- 4 >Emitted(78, 25) Source(76, 43) + SourceIndex(0)
- 5 >Emitted(78, 28) Source(76, 34) + SourceIndex(0)
--6 >Emitted(78, 47) Source(76, 43) + SourceIndex(0)
--7 >Emitted(78, 52) Source(76, 34) + SourceIndex(0)
--8 >Emitted(78, 71) Source(76, 43) + SourceIndex(0)
--9 >Emitted(78, 79) Source(100, 2) + SourceIndex(0)
-+6 >Emitted(78, 38) Source(76, 34) + SourceIndex(0)
-+7 >Emitted(78, 47) Source(76, 43) + SourceIndex(0)
-+8 >Emitted(78, 52) Source(76, 34) + SourceIndex(0)
-+9 >Emitted(78, 62) Source(76, 34) + SourceIndex(0)
-+10>Emitted(78, 71) Source(76, 43) + SourceIndex(0)
-+11>Emitted(78, 79) Source(100, 2) + SourceIndex(0)
- ---
- >>> })(Languages = Thing.Languages || (Thing.Languages = {}));
- 1 >^^^^^^^^
-@@= skipped -11, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^
-+7 > ^^^^^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^
-+10> ^^^^^^^^^
-+11> ^^^^^^^^
- 1 >
- 2 > }
- 3 >
- 4 > Languages
- 5 >
--6 > Languages
--7 >
--8 > Languages
--9 > .PlainText {
-+6 >
-+7 > Languages
-+8 >
-+9 >
-+10> Languages
-+11> .PlainText {
- >
- > export class State implements IState {
- > constructor(private mode: IMode) { }
-@@= skipped -42, +46 lines =@@
- 3 >Emitted(79, 12) Source(76, 24) + SourceIndex(0)
- 4 >Emitted(79, 21) Source(76, 33) + SourceIndex(0)
- 5 >Emitted(79, 24) Source(76, 24) + SourceIndex(0)
--6 >Emitted(79, 39) Source(76, 33) + SourceIndex(0)
--7 >Emitted(79, 44) Source(76, 24) + SourceIndex(0)
--8 >Emitted(79, 59) Source(76, 33) + SourceIndex(0)
--9 >Emitted(79, 67) Source(100, 2) + SourceIndex(0)
-+6 >Emitted(79, 30) Source(76, 24) + SourceIndex(0)
-+7 >Emitted(79, 39) Source(76, 33) + SourceIndex(0)
-+8 >Emitted(79, 44) Source(76, 24) + SourceIndex(0)
-+9 >Emitted(79, 50) Source(76, 24) + SourceIndex(0)
-+10>Emitted(79, 59) Source(76, 33) + SourceIndex(0)
-+11>Emitted(79, 67) Source(100, 2) + SourceIndex(0)
- ---
- >>> })(Thing = Sample.Thing || (Sample.Thing = {}));
- 1 >^^^^
-@@= skipped -11, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^^^^
-+7 > ^^^^^
-+8 > ^^^^^
-+9 > ^^^^^^^
-+10> ^^^^^
-+11> ^^^^^^^^
- 1 >
- 2 > }
- 3 >
- 4 > Thing
- 5 >
--6 > Thing
--7 >
--8 > Thing
--9 > .Languages.PlainText {
-+6 >
-+7 > Thing
-+8 >
-+9 >
-+10> Thing
-+11> .Languages.PlainText {
- >
- > export class State implements IState {
- > constructor(private mode: IMode) { }
-@@= skipped -42, +46 lines =@@
- 3 >Emitted(80, 8) Source(76, 18) + SourceIndex(0)
- 4 >Emitted(80, 13) Source(76, 23) + SourceIndex(0)
- 5 >Emitted(80, 16) Source(76, 18) + SourceIndex(0)
--6 >Emitted(80, 28) Source(76, 23) + SourceIndex(0)
--7 >Emitted(80, 33) Source(76, 18) + SourceIndex(0)
--8 >Emitted(80, 45) Source(76, 23) + SourceIndex(0)
--9 >Emitted(80, 53) Source(100, 2) + SourceIndex(0)
-+6 >Emitted(80, 23) Source(76, 18) + SourceIndex(0)
-+7 >Emitted(80, 28) Source(76, 23) + SourceIndex(0)
-+8 >Emitted(80, 33) Source(76, 18) + SourceIndex(0)
-+9 >Emitted(80, 40) Source(76, 18) + SourceIndex(0)
-+10>Emitted(80, 45) Source(76, 23) + SourceIndex(0)
-+11>Emitted(80, 53) Source(100, 2) + SourceIndex(0)
- ---
- >>>})(Sample || (Sample = {}));
- 1 >
\ No newline at end of file
+ 2 >Emitted(61, 22) Source(79, 45) + SourceIndex(0)
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map
index a0459e2fb82..4722f5340ce 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map
@@ -1,3 +1,3 @@
//// [sourceMap-Comments.js.map]
-{"version":3,"file":"sourceMap-Comments.js","sourceRoot":"","sources":["sourceMap-Comments.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkBZ;AAlBD,WAAU,GAAG;IAAC,IAAA,KAAK,CAkBlB;IAlBa,WAAA,KAAK;QACf,MAAa,IAAI;YACN,GAAG;gBACN,IAAI,CAAC,GAAW,CAAC,CAAC;gBAClB,QAAQ,CAAC,EAAE,CAAC;oBACR,KAAK,CAAC;wBACF,MAAM;oBACV,KAAK,CAAC;wBACF,gBAAgB;wBAChB,gBAAgB;wBAChB,MAAM;oBACV,KAAK,CAAC;wBACF,WAAW;wBACX,MAAM;gBACd,CAAC;YACL,CAAC;SACJ;QAfY,MAAA,IAAI,OAehB,CAAA;IAEL,CAAC,EAlBa,KAAK,GAAL,IAAA,KAAK,KAAL,IAAA,KAAK,QAkBlB;AAAD,CAAC,EAlBS,GAAG,KAAH,GAAG,QAkBZ"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIHNhczsNCihmdW5jdGlvbiAoc2FzKSB7DQogICAgdmFyIHRvb2xzOw0KICAgIChmdW5jdGlvbiAodG9vbHMpIHsNCiAgICAgICAgY2xhc3MgVGVzdCB7DQogICAgICAgICAgICBkb1goKSB7DQogICAgICAgICAgICAgICAgbGV0IGYgPSAyOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZikgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMg0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYSBjb21tZW50DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdG9vbHMuVGVzdCA9IFRlc3Q7DQogICAgfSkodG9vbHMgPSBzYXMudG9vbHMgfHwgKHNhcy50b29scyA9IHt9KSk7DQp9KShzYXMgfHwgKHNhcyA9IHt9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXAtQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUNvbW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwLUNvbW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQlo7QUFsQkQsV0FBVSxHQUFHO0lBQUMsSUFBQSxLQUFLLENBa0JsQjtJQWxCYSxXQUFBLEtBQUs7UUFDZixNQUFhLElBQUk7WUFDTixHQUFHO2dCQUNOLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDUixLQUFLLENBQUM7d0JBQ0YsTUFBTTtvQkFDVixLQUFLLENBQUM7d0JBQ0YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLE1BQU07b0JBQ1YsS0FBSyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsTUFBTTtnQkFDZCxDQUFDO1lBQ0wsQ0FBQztTQUNKO1FBZlksTUFBQSxJQUFJLE9BZWhCLENBQUE7SUFFTCxDQUFDLEVBbEJhLEtBQUssR0FBTCxJQUFBLEtBQUssS0FBTCxJQUFBLEtBQUssUUFrQmxCO0FBQUQsQ0FBQyxFQWxCUyxHQUFHLEtBQUgsR0FBRyxRQWtCWiJ9,bmFtZXNwYWNlIHNhcy50b29scyB7CiAgICBleHBvcnQgY2xhc3MgVGVzdCB7CiAgICAgICAgcHVibGljIGRvWCgpOiB2b2lkIHsKICAgICAgICAgICAgbGV0IGY6IG51bWJlciA9IDI7CiAgICAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIC8vbGluZSBjb21tZW50IDEKICAgICAgICAgICAgICAgICAgICAvL2xpbmUgY29tbWVudCAyCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgLy9hIGNvbW1lbnQKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0K
+{"version":3,"file":"sourceMap-Comments.js","sourceRoot":"","sources":["sourceMap-Comments.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkBZ;AAlBD,WAAU,GAAG;IAAC,IAAA,KAAK,CAkBlB;IAlBa,WAAA,KAAK;QACf,MAAa,IAAI;YACN,GAAG;gBACN,IAAI,CAAC,GAAW,CAAC,CAAC;gBAClB,QAAQ,CAAC,EAAE,CAAC;oBACR,KAAK,CAAC;wBACF,MAAM;oBACV,KAAK,CAAC;wBACF,gBAAgB;wBAChB,gBAAgB;wBAChB,MAAM;oBACV,KAAK,CAAC;wBACF,WAAW;wBACX,MAAM;gBACd,CAAC;YACL,CAAC;SACJ;QAfY,UAAI,OAehB,CAAA;IAEL,CAAC,EAlBa,KAAK,GAAL,SAAK,KAAL,SAAK,QAkBlB;AAAD,CAAC,EAlBS,GAAG,KAAH,GAAG,QAkBZ"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIHNhczsNCihmdW5jdGlvbiAoc2FzKSB7DQogICAgdmFyIHRvb2xzOw0KICAgIChmdW5jdGlvbiAodG9vbHMpIHsNCiAgICAgICAgY2xhc3MgVGVzdCB7DQogICAgICAgICAgICBkb1goKSB7DQogICAgICAgICAgICAgICAgbGV0IGYgPSAyOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZikgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMg0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYSBjb21tZW50DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdG9vbHMuVGVzdCA9IFRlc3Q7DQogICAgfSkodG9vbHMgPSBzYXMudG9vbHMgfHwgKHNhcy50b29scyA9IHt9KSk7DQp9KShzYXMgfHwgKHNhcyA9IHt9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXAtQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUNvbW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwLUNvbW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQlo7QUFsQkQsV0FBVSxHQUFHO0lBQUMsSUFBQSxLQUFLLENBa0JsQjtJQWxCYSxXQUFBLEtBQUs7UUFDZixNQUFhLElBQUk7WUFDTixHQUFHO2dCQUNOLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDUixLQUFLLENBQUM7d0JBQ0YsTUFBTTtvQkFDVixLQUFLLENBQUM7d0JBQ0YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLE1BQU07b0JBQ1YsS0FBSyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsTUFBTTtnQkFDZCxDQUFDO1lBQ0wsQ0FBQztTQUNKO1FBZlksVUFBSSxPQWVoQixDQUFBO0lBRUwsQ0FBQyxFQWxCYSxLQUFLLEdBQUwsU0FBSyxLQUFMLFNBQUssUUFrQmxCO0FBQUQsQ0FBQyxFQWxCUyxHQUFHLEtBQUgsR0FBRyxRQWtCWiJ9,bmFtZXNwYWNlIHNhcy50b29scyB7CiAgICBleHBvcnQgY2xhc3MgVGVzdCB7CiAgICAgICAgcHVibGljIGRvWCgpOiB2b2lkIHsKICAgICAgICAgICAgbGV0IGY6IG51bWJlciA9IDI7CiAgICAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIC8vbGluZSBjb21tZW50IDEKICAgICAgICAgICAgICAgICAgICAvL2xpbmUgY29tbWVudCAyCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgLy9hIGNvbW1lbnQKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0K
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map.diff
deleted file mode 100644
index 86dbd19233b..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).js.map.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.sourceMap-Comments(target=es2015).js.map
-+++ new.sourceMap-Comments(target=es2015).js.map
-@@= skipped -0, +0 lines =@@
- //// [sourceMap-Comments.js.map]
--{"version":3,"file":"sourceMap-Comments.js","sourceRoot":"","sources":["sourceMap-Comments.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkBZ;AAlBD,WAAU,GAAG;IAAC,IAAA,KAAK,CAkBlB;IAlBa,WAAA,KAAK;QACf,MAAa,IAAI;YACN,GAAG;gBACN,IAAI,CAAC,GAAW,CAAC,CAAC;gBAClB,QAAQ,CAAC,EAAE,CAAC;oBACR,KAAK,CAAC;wBACF,MAAM;oBACV,KAAK,CAAC;wBACF,gBAAgB;wBAChB,gBAAgB;wBAChB,MAAM;oBACV,KAAK,CAAC;wBACF,WAAW;wBACX,MAAM;gBACd,CAAC;YACL,CAAC;SACJ;QAfY,UAAI,OAehB,CAAA;IAEL,CAAC,EAlBa,KAAK,GAAL,SAAK,KAAL,SAAK,QAkBlB;AAAD,CAAC,EAlBS,GAAG,KAAH,GAAG,QAkBZ"}
--//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIHNhczsNCihmdW5jdGlvbiAoc2FzKSB7DQogICAgdmFyIHRvb2xzOw0KICAgIChmdW5jdGlvbiAodG9vbHMpIHsNCiAgICAgICAgY2xhc3MgVGVzdCB7DQogICAgICAgICAgICBkb1goKSB7DQogICAgICAgICAgICAgICAgbGV0IGYgPSAyOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZikgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMg0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYSBjb21tZW50DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdG9vbHMuVGVzdCA9IFRlc3Q7DQogICAgfSkodG9vbHMgPSBzYXMudG9vbHMgfHwgKHNhcy50b29scyA9IHt9KSk7DQp9KShzYXMgfHwgKHNhcyA9IHt9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXAtQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUNvbW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwLUNvbW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQlo7QUFsQkQsV0FBVSxHQUFHO0lBQUMsSUFBQSxLQUFLLENBa0JsQjtJQWxCYSxXQUFBLEtBQUs7UUFDZixNQUFhLElBQUk7WUFDTixHQUFHO2dCQUNOLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDUixLQUFLLENBQUM7d0JBQ0YsTUFBTTtvQkFDVixLQUFLLENBQUM7d0JBQ0YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLE1BQU07b0JBQ1YsS0FBSyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsTUFBTTtnQkFDZCxDQUFDO1lBQ0wsQ0FBQztTQUNKO1FBZlksVUFBSSxPQWVoQixDQUFBO0lBRUwsQ0FBQyxFQWxCYSxLQUFLLEdBQUwsU0FBSyxLQUFMLFNBQUssUUFrQmxCO0FBQUQsQ0FBQyxFQWxCUyxHQUFHLEtBQUgsR0FBRyxRQWtCWiJ9,bmFtZXNwYWNlIHNhcy50b29scyB7CiAgICBleHBvcnQgY2xhc3MgVGVzdCB7CiAgICAgICAgcHVibGljIGRvWCgpOiB2b2lkIHsKICAgICAgICAgICAgbGV0IGY6IG51bWJlciA9IDI7CiAgICAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIC8vbGluZSBjb21tZW50IDEKICAgICAgICAgICAgICAgICAgICAvL2xpbmUgY29tbWVudCAyCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgLy9hIGNvbW1lbnQKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0K
-+{"version":3,"file":"sourceMap-Comments.js","sourceRoot":"","sources":["sourceMap-Comments.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkBZ;AAlBD,WAAU,GAAG;IAAC,IAAA,KAAK,CAkBlB;IAlBa,WAAA,KAAK;QACf,MAAa,IAAI;YACN,GAAG;gBACN,IAAI,CAAC,GAAW,CAAC,CAAC;gBAClB,QAAQ,CAAC,EAAE,CAAC;oBACR,KAAK,CAAC;wBACF,MAAM;oBACV,KAAK,CAAC;wBACF,gBAAgB;wBAChB,gBAAgB;wBAChB,MAAM;oBACV,KAAK,CAAC;wBACF,WAAW;wBACX,MAAM;gBACd,CAAC;YACL,CAAC;SACJ;QAfY,MAAA,IAAI,OAehB,CAAA;IAEL,CAAC,EAlBa,KAAK,GAAL,IAAA,KAAK,KAAL,IAAA,KAAK,QAkBlB;AAAD,CAAC,EAlBS,GAAG,KAAH,GAAG,QAkBZ"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIHNhczsNCihmdW5jdGlvbiAoc2FzKSB7DQogICAgdmFyIHRvb2xzOw0KICAgIChmdW5jdGlvbiAodG9vbHMpIHsNCiAgICAgICAgY2xhc3MgVGVzdCB7DQogICAgICAgICAgICBkb1goKSB7DQogICAgICAgICAgICAgICAgbGV0IGYgPSAyOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZikgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy9saW5lIGNvbW1lbnQgMg0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYSBjb21tZW50DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdG9vbHMuVGVzdCA9IFRlc3Q7DQogICAgfSkodG9vbHMgPSBzYXMudG9vbHMgfHwgKHNhcy50b29scyA9IHt9KSk7DQp9KShzYXMgfHwgKHNhcyA9IHt9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXAtQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUNvbW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwLUNvbW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQlo7QUFsQkQsV0FBVSxHQUFHO0lBQUMsSUFBQSxLQUFLLENBa0JsQjtJQWxCYSxXQUFBLEtBQUs7UUFDZixNQUFhLElBQUk7WUFDTixHQUFHO2dCQUNOLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDUixLQUFLLENBQUM7d0JBQ0YsTUFBTTtvQkFDVixLQUFLLENBQUM7d0JBQ0YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLE1BQU07b0JBQ1YsS0FBSyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsTUFBTTtnQkFDZCxDQUFDO1lBQ0wsQ0FBQztTQUNKO1FBZlksTUFBQSxJQUFJLE9BZWhCLENBQUE7SUFFTCxDQUFDLEVBbEJhLEtBQUssR0FBTCxJQUFBLEtBQUssS0FBTCxJQUFBLEtBQUssUUFrQmxCO0FBQUQsQ0FBQyxFQWxCUyxHQUFHLEtBQUgsR0FBRyxRQWtCWiJ9,bmFtZXNwYWNlIHNhcy50b29scyB7CiAgICBleHBvcnQgY2xhc3MgVGVzdCB7CiAgICAgICAgcHVibGljIGRvWCgpOiB2b2lkIHsKICAgICAgICAgICAgbGV0IGY6IG51bWJlciA9IDI7CiAgICAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgIC8vbGluZSBjb21tZW50IDEKICAgICAgICAgICAgICAgICAgICAvL2xpbmUgY29tbWVudCAyCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgLy9hIGNvbW1lbnQKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0K
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt
index 676de2055d6..fa6cd991534 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt
@@ -283,15 +283,13 @@ sourceFile:sourceMap-Comments.ts
---
>>> tools.Test = Test;
1->^^^^^^^^
-2 > ^^^^^^
-3 > ^^^^
-4 > ^^^^^^^
-5 > ^
-6 > ^^^^^^^^^^^^^^^^^^^^^->
+2 > ^^^^^^^^^^
+3 > ^^^^^^^
+4 > ^
+5 > ^^^^^^^^^^^^^^^^^^^^^->
1->
-2 >
-3 > Test
-4 > {
+2 > Test
+3 > {
> public doX(): void {
> let f: number = 2;
> switch (f) {
@@ -307,12 +305,11 @@ sourceFile:sourceMap-Comments.ts
> }
> }
> }
-5 >
+4 >
1->Emitted(22, 9) Source(2, 18) + SourceIndex(0)
-2 >Emitted(22, 15) Source(2, 18) + SourceIndex(0)
-3 >Emitted(22, 19) Source(2, 22) + SourceIndex(0)
-4 >Emitted(22, 26) Source(17, 6) + SourceIndex(0)
-5 >Emitted(22, 27) Source(17, 6) + SourceIndex(0)
+2 >Emitted(22, 19) Source(2, 22) + SourceIndex(0)
+3 >Emitted(22, 26) Source(17, 6) + SourceIndex(0)
+4 >Emitted(22, 27) Source(17, 6) + SourceIndex(0)
---
>>> })(tools = sas.tools || (sas.tools = {}));
1->^^^^
@@ -320,12 +317,10 @@ sourceFile:sourceMap-Comments.ts
3 > ^^
4 > ^^^^^
5 > ^^^
-6 > ^^^^
-7 > ^^^^^
-8 > ^^^^^
-9 > ^^^^
-10> ^^^^^
-11> ^^^^^^^^
+6 > ^^^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^^^
+9 > ^^^^^^^^
1->
>
>
@@ -333,12 +328,10 @@ sourceFile:sourceMap-Comments.ts
3 >
4 > tools
5 >
-6 >
-7 > tools
-8 >
-9 >
-10> tools
-11> {
+6 > tools
+7 >
+8 > tools
+9 > {
> export class Test {
> public doX(): void {
> let f: number = 2;
@@ -362,12 +355,10 @@ sourceFile:sourceMap-Comments.ts
3 >Emitted(23, 8) Source(1, 15) + SourceIndex(0)
4 >Emitted(23, 13) Source(1, 20) + SourceIndex(0)
5 >Emitted(23, 16) Source(1, 15) + SourceIndex(0)
-6 >Emitted(23, 20) Source(1, 15) + SourceIndex(0)
-7 >Emitted(23, 25) Source(1, 20) + SourceIndex(0)
-8 >Emitted(23, 30) Source(1, 15) + SourceIndex(0)
-9 >Emitted(23, 34) Source(1, 15) + SourceIndex(0)
-10>Emitted(23, 39) Source(1, 20) + SourceIndex(0)
-11>Emitted(23, 47) Source(19, 2) + SourceIndex(0)
+6 >Emitted(23, 25) Source(1, 20) + SourceIndex(0)
+7 >Emitted(23, 30) Source(1, 15) + SourceIndex(0)
+8 >Emitted(23, 39) Source(1, 20) + SourceIndex(0)
+9 >Emitted(23, 47) Source(19, 2) + SourceIndex(0)
---
>>>})(sas || (sas = {}));
1 >
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt.diff
deleted file mode 100644
index 709ec42c16c..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-Comments(target=es2015).sourcemap.txt.diff
+++ /dev/null
@@ -1,92 +0,0 @@
---- old.sourceMap-Comments(target=es2015).sourcemap.txt
-+++ new.sourceMap-Comments(target=es2015).sourcemap.txt
-@@= skipped -282, +282 lines =@@
- ---
- >>> tools.Test = Test;
- 1->^^^^^^^^
--2 > ^^^^^^^^^^
--3 > ^^^^^^^
--4 > ^
--5 > ^^^^^^^^^^^^^^^^^^^^^->
-+2 > ^^^^^^
-+3 > ^^^^
-+4 > ^^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^^^^^^^^^^^->
- 1->
--2 > Test
--3 > {
-+2 >
-+3 > Test
-+4 > {
- > public doX(): void {
- > let f: number = 2;
- > switch (f) {
-@@= skipped -22, +24 lines =@@
- > }
- > }
- > }
--4 >
-+5 >
- 1->Emitted(22, 9) Source(2, 18) + SourceIndex(0)
--2 >Emitted(22, 19) Source(2, 22) + SourceIndex(0)
--3 >Emitted(22, 26) Source(17, 6) + SourceIndex(0)
--4 >Emitted(22, 27) Source(17, 6) + SourceIndex(0)
-+2 >Emitted(22, 15) Source(2, 18) + SourceIndex(0)
-+3 >Emitted(22, 19) Source(2, 22) + SourceIndex(0)
-+4 >Emitted(22, 26) Source(17, 6) + SourceIndex(0)
-+5 >Emitted(22, 27) Source(17, 6) + SourceIndex(0)
- ---
- >>> })(tools = sas.tools || (sas.tools = {}));
- 1->^^^^
-@@= skipped -12, +13 lines =@@
- 3 > ^^
- 4 > ^^^^^
- 5 > ^^^
--6 > ^^^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^
-+7 > ^^^^^
-+8 > ^^^^^
-+9 > ^^^^
-+10> ^^^^^
-+11> ^^^^^^^^
- 1->
- >
- >
-@@= skipped -11, +13 lines =@@
- 3 >
- 4 > tools
- 5 >
--6 > tools
--7 >
--8 > tools
--9 > {
-+6 >
-+7 > tools
-+8 >
-+9 >
-+10> tools
-+11> {
- > export class Test {
- > public doX(): void {
- > let f: number = 2;
-@@= skipped -27, +29 lines =@@
- 3 >Emitted(23, 8) Source(1, 15) + SourceIndex(0)
- 4 >Emitted(23, 13) Source(1, 20) + SourceIndex(0)
- 5 >Emitted(23, 16) Source(1, 15) + SourceIndex(0)
--6 >Emitted(23, 25) Source(1, 20) + SourceIndex(0)
--7 >Emitted(23, 30) Source(1, 15) + SourceIndex(0)
--8 >Emitted(23, 39) Source(1, 20) + SourceIndex(0)
--9 >Emitted(23, 47) Source(19, 2) + SourceIndex(0)
-+6 >Emitted(23, 20) Source(1, 15) + SourceIndex(0)
-+7 >Emitted(23, 25) Source(1, 20) + SourceIndex(0)
-+8 >Emitted(23, 30) Source(1, 15) + SourceIndex(0)
-+9 >Emitted(23, 34) Source(1, 15) + SourceIndex(0)
-+10>Emitted(23, 39) Source(1, 20) + SourceIndex(0)
-+11>Emitted(23, 47) Source(19, 2) + SourceIndex(0)
- ---
- >>>})(sas || (sas = {}));
- 1 >
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map
index 462153d5f59..68ed8a44876 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map
@@ -1,3 +1,3 @@
//// [sourceMap-FileWithComments.js.map]
-{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":";AAKA,SAAS;AACT,IAAU,MAAM,CAwBf;AAxBD,WAAU,MAAM;IAEZ,QAAQ;IACR,MAAa,KAAK;QACd,cAAc;QACd,YAAmB,CAAS,EAAS,CAAS;qBAA3B,CAAC;qBAAiB,CAAC;QAAY,CAAC;QAEnD,kBAAkB;QAClB,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAIrE;IAFG,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,OAAA,KAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,SAAgB,GAAG;IACnB,CAAC;IADe,OAAA,GAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gTW9kdWxlDQp2YXIgU2hhcGVzOw0KKGZ1bmN0aW9uIChTaGFwZXMpIHsNCiAgICAvLyBDbGFzcw0KICAgIGNsYXNzIFBvaW50IHsNCiAgICAgICAgLy8gQ29uc3RydWN0b3INCiAgICAgICAgY29uc3RydWN0b3IoeCwgeSkgew0KICAgICAgICAgICAgdGhpcy54ID0geDsNCiAgICAgICAgICAgIHRoaXMueSA9IHk7DQogICAgICAgIH0NCiAgICAgICAgLy8gSW5zdGFuY2UgbWVtYmVyDQogICAgICAgIGdldERpc3QoKSB7IHJldHVybiBNYXRoLnNxcnQodGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55KTsgfQ0KICAgIH0NCiAgICAvLyBTdGF0aWMgbWVtYmVyDQogICAgUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KICAgIFNoYXBlcy5Qb2ludCA9IFBvaW50Ow0KICAgIC8vIFZhcmlhYmxlIGNvbW1lbnQgYWZ0ZXIgY2xhc3MNCiAgICB2YXIgYSA9IDEwOw0KICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICB9DQogICAgU2hhcGVzLmZvbyA9IGZvbzsNCiAgICAvKiogIGNvbW1lbnQgYWZ0ZXIgZnVuY3Rpb24NCiAgICAqIHRoaXMgaXMgYW5vdGhlciBjb21tZW50DQogICAgKi8NCiAgICB2YXIgYiA9IDEwOw0KfSkoU2hhcGVzIHx8IChTaGFwZXMgPSB7fSkpOw0KLyoqIExvY2FsIFZhcmlhYmxlICovDQp2YXIgcCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7DQp2YXIgZGlzdCA9IHAuZ2V0RGlzdCgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXAtRmlsZVdpdGhDb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsU0FBUztBQUNULElBQVUsTUFBTSxDQXdCZjtBQXhCRCxXQUFVLE1BQU07SUFFWixRQUFRO0lBQ1IsTUFBYSxLQUFLO1FBQ2QsY0FBYztRQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO3FCQUEzQixDQUFDO3FCQUFpQixDQUFDO1FBQVksQ0FBQztRQUVuRCxrQkFBa0I7UUFDbEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBSXJFO0lBRkcsZ0JBQWdCO0lBQ1QsWUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQVJ2QixPQUFBLEtBQUssUUFTakIsQ0FBQTtJQUVELCtCQUErQjtJQUMvQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFWCxTQUFnQixHQUFHO0lBQ25CLENBQUM7SUFEZSxPQUFBLEdBQUcsTUFDbEIsQ0FBQTtJQUVEOztNQUVFO0lBQ0YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2YsQ0FBQyxFQXhCUyxNQUFNLEtBQU4sTUFBTSxRQXdCZjtBQUVELHFCQUFxQjtBQUNyQixJQUFJLENBQUMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyJ9,Ly8gSW50ZXJmYWNlCmludGVyZmFjZSBJUG9pbnQgewogICAgZ2V0RGlzdCgpOiBudW1iZXI7Cn0KCi8vIE1vZHVsZQpuYW1lc3BhY2UgU2hhcGVzIHsKCiAgICAvLyBDbGFzcwogICAgZXhwb3J0IGNsYXNzIFBvaW50IGltcGxlbWVudHMgSVBvaW50IHsKICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHsgfQoKICAgICAgICAvLyBJbnN0YW5jZSBtZW1iZXIKICAgICAgICBnZXREaXN0KCkgeyByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSk7IH0KCiAgICAgICAgLy8gU3RhdGljIG1lbWJlcgogICAgICAgIHN0YXRpYyBvcmlnaW4gPSBuZXcgUG9pbnQoMCwgMCk7CiAgICB9CgogICAgLy8gVmFyaWFibGUgY29tbWVudCBhZnRlciBjbGFzcwogICAgdmFyIGEgPSAxMDsKCiAgICBleHBvcnQgZnVuY3Rpb24gZm9vKCkgewogICAgfQoKICAgIC8qKiAgY29tbWVudCBhZnRlciBmdW5jdGlvbgogICAgKiB0aGlzIGlzIGFub3RoZXIgY29tbWVudCAKICAgICovCiAgICB2YXIgYiA9IDEwOwp9CgovKiogTG9jYWwgVmFyaWFibGUgKi8KdmFyIHA6IElQb2ludCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7CnZhciBkaXN0ID0gcC5nZXREaXN0KCk7
+{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":";AAKA,SAAS;AACT,IAAU,MAAM,CAwBf;AAxBD,WAAU,MAAM;IAEZ,QAAQ;IACR,MAAa,KAAK;QACd,cAAc;QACd,YAAmB,CAAS,EAAS,CAAS;qBAA3B,CAAC;qBAAiB,CAAC;QAAY,CAAC;QAEnD,kBAAkB;QAClB,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAIrE;IAFG,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,YAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,SAAgB,GAAG;IACnB,CAAC;IADe,UAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gTW9kdWxlDQp2YXIgU2hhcGVzOw0KKGZ1bmN0aW9uIChTaGFwZXMpIHsNCiAgICAvLyBDbGFzcw0KICAgIGNsYXNzIFBvaW50IHsNCiAgICAgICAgLy8gQ29uc3RydWN0b3INCiAgICAgICAgY29uc3RydWN0b3IoeCwgeSkgew0KICAgICAgICAgICAgdGhpcy54ID0geDsNCiAgICAgICAgICAgIHRoaXMueSA9IHk7DQogICAgICAgIH0NCiAgICAgICAgLy8gSW5zdGFuY2UgbWVtYmVyDQogICAgICAgIGdldERpc3QoKSB7IHJldHVybiBNYXRoLnNxcnQodGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55KTsgfQ0KICAgIH0NCiAgICAvLyBTdGF0aWMgbWVtYmVyDQogICAgUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KICAgIFNoYXBlcy5Qb2ludCA9IFBvaW50Ow0KICAgIC8vIFZhcmlhYmxlIGNvbW1lbnQgYWZ0ZXIgY2xhc3MNCiAgICB2YXIgYSA9IDEwOw0KICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICB9DQogICAgU2hhcGVzLmZvbyA9IGZvbzsNCiAgICAvKiogIGNvbW1lbnQgYWZ0ZXIgZnVuY3Rpb24NCiAgICAqIHRoaXMgaXMgYW5vdGhlciBjb21tZW50DQogICAgKi8NCiAgICB2YXIgYiA9IDEwOw0KfSkoU2hhcGVzIHx8IChTaGFwZXMgPSB7fSkpOw0KLyoqIExvY2FsIFZhcmlhYmxlICovDQp2YXIgcCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7DQp2YXIgZGlzdCA9IHAuZ2V0RGlzdCgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXAtRmlsZVdpdGhDb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsU0FBUztBQUNULElBQVUsTUFBTSxDQXdCZjtBQXhCRCxXQUFVLE1BQU07SUFFWixRQUFRO0lBQ1IsTUFBYSxLQUFLO1FBQ2QsY0FBYztRQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO3FCQUEzQixDQUFDO3FCQUFpQixDQUFDO1FBQVksQ0FBQztRQUVuRCxrQkFBa0I7UUFDbEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBSXJFO0lBRkcsZ0JBQWdCO0lBQ1QsWUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQVJ2QixZQUFLLFFBU2pCLENBQUE7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVgsU0FBZ0IsR0FBRztJQUNuQixDQUFDO0lBRGUsVUFBRyxNQUNsQixDQUFBO0lBRUQ7O01BRUU7SUFDRixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDZixDQUFDLEVBeEJTLE1BQU0sS0FBTixNQUFNLFFBd0JmO0FBRUQscUJBQXFCO0FBQ3JCLElBQUksQ0FBQyxHQUFXLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDIn0=,Ly8gSW50ZXJmYWNlCmludGVyZmFjZSBJUG9pbnQgewogICAgZ2V0RGlzdCgpOiBudW1iZXI7Cn0KCi8vIE1vZHVsZQpuYW1lc3BhY2UgU2hhcGVzIHsKCiAgICAvLyBDbGFzcwogICAgZXhwb3J0IGNsYXNzIFBvaW50IGltcGxlbWVudHMgSVBvaW50IHsKICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHsgfQoKICAgICAgICAvLyBJbnN0YW5jZSBtZW1iZXIKICAgICAgICBnZXREaXN0KCkgeyByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSk7IH0KCiAgICAgICAgLy8gU3RhdGljIG1lbWJlcgogICAgICAgIHN0YXRpYyBvcmlnaW4gPSBuZXcgUG9pbnQoMCwgMCk7CiAgICB9CgogICAgLy8gVmFyaWFibGUgY29tbWVudCBhZnRlciBjbGFzcwogICAgdmFyIGEgPSAxMDsKCiAgICBleHBvcnQgZnVuY3Rpb24gZm9vKCkgewogICAgfQoKICAgIC8qKiAgY29tbWVudCBhZnRlciBmdW5jdGlvbgogICAgKiB0aGlzIGlzIGFub3RoZXIgY29tbWVudCAKICAgICovCiAgICB2YXIgYiA9IDEwOwp9CgovKiogTG9jYWwgVmFyaWFibGUgKi8KdmFyIHA6IElQb2ludCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7CnZhciBkaXN0ID0gcC5nZXREaXN0KCk7
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map.diff
index 52039461d43..8b1ea5686f4 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.js.map.diff
@@ -4,5 +4,5 @@
//// [sourceMap-FileWithComments.js.map]
-{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":";AAKA,SAAS;AACT,IAAU,MAAM,CAwBf;AAxBD,WAAU,MAAM;IAEZ,QAAQ;IACR,MAAa,KAAK;QACd,cAAc;QACd,YAAmB,CAAS,EAAS,CAAS;YAA3B,MAAC,GAAD,CAAC,CAAQ;YAAS,MAAC,GAAD,CAAC,CAAQ;QAAI,CAAC;QAEnD,kBAAkB;QAClB,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;IAElE,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,YAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,SAAgB,GAAG;IACnB,CAAC;IADe,UAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gTW9kdWxlDQp2YXIgU2hhcGVzOw0KKGZ1bmN0aW9uIChTaGFwZXMpIHsNCiAgICAvLyBDbGFzcw0KICAgIGNsYXNzIFBvaW50IHsNCiAgICAgICAgLy8gQ29uc3RydWN0b3INCiAgICAgICAgY29uc3RydWN0b3IoeCwgeSkgew0KICAgICAgICAgICAgdGhpcy54ID0geDsNCiAgICAgICAgICAgIHRoaXMueSA9IHk7DQogICAgICAgIH0NCiAgICAgICAgLy8gSW5zdGFuY2UgbWVtYmVyDQogICAgICAgIGdldERpc3QoKSB7IHJldHVybiBNYXRoLnNxcnQodGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55KTsgfQ0KICAgIH0NCiAgICAvLyBTdGF0aWMgbWVtYmVyDQogICAgUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KICAgIFNoYXBlcy5Qb2ludCA9IFBvaW50Ow0KICAgIC8vIFZhcmlhYmxlIGNvbW1lbnQgYWZ0ZXIgY2xhc3MNCiAgICB2YXIgYSA9IDEwOw0KICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICB9DQogICAgU2hhcGVzLmZvbyA9IGZvbzsNCiAgICAvKiogIGNvbW1lbnQgYWZ0ZXIgZnVuY3Rpb24NCiAgICAqIHRoaXMgaXMgYW5vdGhlciBjb21tZW50DQogICAgKi8NCiAgICB2YXIgYiA9IDEwOw0KfSkoU2hhcGVzIHx8IChTaGFwZXMgPSB7fSkpOw0KLyoqIExvY2FsIFZhcmlhYmxlICovDQp2YXIgcCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7DQp2YXIgZGlzdCA9IHAuZ2V0RGlzdCgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXAtRmlsZVdpdGhDb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsU0FBUztBQUNULElBQVUsTUFBTSxDQXdCZjtBQXhCRCxXQUFVLE1BQU07SUFFWixRQUFRO0lBQ1IsTUFBYSxLQUFLO1FBQ2QsY0FBYztRQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO1lBQTNCLE1BQUMsR0FBRCxDQUFDLENBQVE7WUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQUksQ0FBQztRQUVuRCxrQkFBa0I7UUFDbEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztJQUVsRSxnQkFBZ0I7SUFDVCxZQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBUnZCLFlBQUssUUFTakIsQ0FBQTtJQUVELCtCQUErQjtJQUMvQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFWCxTQUFnQixHQUFHO0lBQ25CLENBQUM7SUFEZSxVQUFHLE1BQ2xCLENBQUE7SUFFRDs7TUFFRTtJQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNmLENBQUMsRUF4QlMsTUFBTSxLQUFOLE1BQU0sUUF3QmY7QUFFRCxxQkFBcUI7QUFDckIsSUFBSSxDQUFDLEdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMifQ==,Ly8gSW50ZXJmYWNlCmludGVyZmFjZSBJUG9pbnQgewogICAgZ2V0RGlzdCgpOiBudW1iZXI7Cn0KCi8vIE1vZHVsZQpuYW1lc3BhY2UgU2hhcGVzIHsKCiAgICAvLyBDbGFzcwogICAgZXhwb3J0IGNsYXNzIFBvaW50IGltcGxlbWVudHMgSVBvaW50IHsKICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHsgfQoKICAgICAgICAvLyBJbnN0YW5jZSBtZW1iZXIKICAgICAgICBnZXREaXN0KCkgeyByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSk7IH0KCiAgICAgICAgLy8gU3RhdGljIG1lbWJlcgogICAgICAgIHN0YXRpYyBvcmlnaW4gPSBuZXcgUG9pbnQoMCwgMCk7CiAgICB9CgogICAgLy8gVmFyaWFibGUgY29tbWVudCBhZnRlciBjbGFzcwogICAgdmFyIGEgPSAxMDsKCiAgICBleHBvcnQgZnVuY3Rpb24gZm9vKCkgewogICAgfQoKICAgIC8qKiAgY29tbWVudCBhZnRlciBmdW5jdGlvbgogICAgKiB0aGlzIGlzIGFub3RoZXIgY29tbWVudCAKICAgICovCiAgICB2YXIgYiA9IDEwOwp9CgovKiogTG9jYWwgVmFyaWFibGUgKi8KdmFyIHA6IElQb2ludCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7CnZhciBkaXN0ID0gcC5nZXREaXN0KCk7
-+{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":";AAKA,SAAS;AACT,IAAU,MAAM,CAwBf;AAxBD,WAAU,MAAM;IAEZ,QAAQ;IACR,MAAa,KAAK;QACd,cAAc;QACd,YAAmB,CAAS,EAAS,CAAS;qBAA3B,CAAC;qBAAiB,CAAC;QAAY,CAAC;QAEnD,kBAAkB;QAClB,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAIrE;IAFG,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,OAAA,KAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,SAAgB,GAAG;IACnB,CAAC;IADe,OAAA,GAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gTW9kdWxlDQp2YXIgU2hhcGVzOw0KKGZ1bmN0aW9uIChTaGFwZXMpIHsNCiAgICAvLyBDbGFzcw0KICAgIGNsYXNzIFBvaW50IHsNCiAgICAgICAgLy8gQ29uc3RydWN0b3INCiAgICAgICAgY29uc3RydWN0b3IoeCwgeSkgew0KICAgICAgICAgICAgdGhpcy54ID0geDsNCiAgICAgICAgICAgIHRoaXMueSA9IHk7DQogICAgICAgIH0NCiAgICAgICAgLy8gSW5zdGFuY2UgbWVtYmVyDQogICAgICAgIGdldERpc3QoKSB7IHJldHVybiBNYXRoLnNxcnQodGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55KTsgfQ0KICAgIH0NCiAgICAvLyBTdGF0aWMgbWVtYmVyDQogICAgUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KICAgIFNoYXBlcy5Qb2ludCA9IFBvaW50Ow0KICAgIC8vIFZhcmlhYmxlIGNvbW1lbnQgYWZ0ZXIgY2xhc3MNCiAgICB2YXIgYSA9IDEwOw0KICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICB9DQogICAgU2hhcGVzLmZvbyA9IGZvbzsNCiAgICAvKiogIGNvbW1lbnQgYWZ0ZXIgZnVuY3Rpb24NCiAgICAqIHRoaXMgaXMgYW5vdGhlciBjb21tZW50DQogICAgKi8NCiAgICB2YXIgYiA9IDEwOw0KfSkoU2hhcGVzIHx8IChTaGFwZXMgPSB7fSkpOw0KLyoqIExvY2FsIFZhcmlhYmxlICovDQp2YXIgcCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7DQp2YXIgZGlzdCA9IHAuZ2V0RGlzdCgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXAtRmlsZVdpdGhDb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsU0FBUztBQUNULElBQVUsTUFBTSxDQXdCZjtBQXhCRCxXQUFVLE1BQU07SUFFWixRQUFRO0lBQ1IsTUFBYSxLQUFLO1FBQ2QsY0FBYztRQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO3FCQUEzQixDQUFDO3FCQUFpQixDQUFDO1FBQVksQ0FBQztRQUVuRCxrQkFBa0I7UUFDbEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBSXJFO0lBRkcsZ0JBQWdCO0lBQ1QsWUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQVJ2QixPQUFBLEtBQUssUUFTakIsQ0FBQTtJQUVELCtCQUErQjtJQUMvQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFWCxTQUFnQixHQUFHO0lBQ25CLENBQUM7SUFEZSxPQUFBLEdBQUcsTUFDbEIsQ0FBQTtJQUVEOztNQUVFO0lBQ0YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2YsQ0FBQyxFQXhCUyxNQUFNLEtBQU4sTUFBTSxRQXdCZjtBQUVELHFCQUFxQjtBQUNyQixJQUFJLENBQUMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyJ9,Ly8gSW50ZXJmYWNlCmludGVyZmFjZSBJUG9pbnQgewogICAgZ2V0RGlzdCgpOiBudW1iZXI7Cn0KCi8vIE1vZHVsZQpuYW1lc3BhY2UgU2hhcGVzIHsKCiAgICAvLyBDbGFzcwogICAgZXhwb3J0IGNsYXNzIFBvaW50IGltcGxlbWVudHMgSVBvaW50IHsKICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHsgfQoKICAgICAgICAvLyBJbnN0YW5jZSBtZW1iZXIKICAgICAgICBnZXREaXN0KCkgeyByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSk7IH0KCiAgICAgICAgLy8gU3RhdGljIG1lbWJlcgogICAgICAgIHN0YXRpYyBvcmlnaW4gPSBuZXcgUG9pbnQoMCwgMCk7CiAgICB9CgogICAgLy8gVmFyaWFibGUgY29tbWVudCBhZnRlciBjbGFzcwogICAgdmFyIGEgPSAxMDsKCiAgICBleHBvcnQgZnVuY3Rpb24gZm9vKCkgewogICAgfQoKICAgIC8qKiAgY29tbWVudCBhZnRlciBmdW5jdGlvbgogICAgKiB0aGlzIGlzIGFub3RoZXIgY29tbWVudCAKICAgICovCiAgICB2YXIgYiA9IDEwOwp9CgovKiogTG9jYWwgVmFyaWFibGUgKi8KdmFyIHA6IElQb2ludCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7CnZhciBkaXN0ID0gcC5nZXREaXN0KCk7
\ No newline at end of file
++{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":";AAKA,SAAS;AACT,IAAU,MAAM,CAwBf;AAxBD,WAAU,MAAM;IAEZ,QAAQ;IACR,MAAa,KAAK;QACd,cAAc;QACd,YAAmB,CAAS,EAAS,CAAS;qBAA3B,CAAC;qBAAiB,CAAC;QAAY,CAAC;QAEnD,kBAAkB;QAClB,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAIrE;IAFG,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,YAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,SAAgB,GAAG;IACnB,CAAC;IADe,UAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBS,MAAM,KAAN,MAAM,QAwBf;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KLy8gTW9kdWxlDQp2YXIgU2hhcGVzOw0KKGZ1bmN0aW9uIChTaGFwZXMpIHsNCiAgICAvLyBDbGFzcw0KICAgIGNsYXNzIFBvaW50IHsNCiAgICAgICAgLy8gQ29uc3RydWN0b3INCiAgICAgICAgY29uc3RydWN0b3IoeCwgeSkgew0KICAgICAgICAgICAgdGhpcy54ID0geDsNCiAgICAgICAgICAgIHRoaXMueSA9IHk7DQogICAgICAgIH0NCiAgICAgICAgLy8gSW5zdGFuY2UgbWVtYmVyDQogICAgICAgIGdldERpc3QoKSB7IHJldHVybiBNYXRoLnNxcnQodGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55KTsgfQ0KICAgIH0NCiAgICAvLyBTdGF0aWMgbWVtYmVyDQogICAgUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KICAgIFNoYXBlcy5Qb2ludCA9IFBvaW50Ow0KICAgIC8vIFZhcmlhYmxlIGNvbW1lbnQgYWZ0ZXIgY2xhc3MNCiAgICB2YXIgYSA9IDEwOw0KICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICB9DQogICAgU2hhcGVzLmZvbyA9IGZvbzsNCiAgICAvKiogIGNvbW1lbnQgYWZ0ZXIgZnVuY3Rpb24NCiAgICAqIHRoaXMgaXMgYW5vdGhlciBjb21tZW50DQogICAgKi8NCiAgICB2YXIgYiA9IDEwOw0KfSkoU2hhcGVzIHx8IChTaGFwZXMgPSB7fSkpOw0KLyoqIExvY2FsIFZhcmlhYmxlICovDQp2YXIgcCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7DQp2YXIgZGlzdCA9IHAuZ2V0RGlzdCgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwLUZpbGVXaXRoQ29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXAtRmlsZVdpdGhDb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsU0FBUztBQUNULElBQVUsTUFBTSxDQXdCZjtBQXhCRCxXQUFVLE1BQU07SUFFWixRQUFRO0lBQ1IsTUFBYSxLQUFLO1FBQ2QsY0FBYztRQUNkLFlBQW1CLENBQVMsRUFBUyxDQUFTO3FCQUEzQixDQUFDO3FCQUFpQixDQUFDO1FBQVksQ0FBQztRQUVuRCxrQkFBa0I7UUFDbEIsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBSXJFO0lBRkcsZ0JBQWdCO0lBQ1QsWUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQVJ2QixZQUFLLFFBU2pCLENBQUE7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVgsU0FBZ0IsR0FBRztJQUNuQixDQUFDO0lBRGUsVUFBRyxNQUNsQixDQUFBO0lBRUQ7O01BRUU7SUFDRixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDZixDQUFDLEVBeEJTLE1BQU0sS0FBTixNQUFNLFFBd0JmO0FBRUQscUJBQXFCO0FBQ3JCLElBQUksQ0FBQyxHQUFXLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDIn0=,Ly8gSW50ZXJmYWNlCmludGVyZmFjZSBJUG9pbnQgewogICAgZ2V0RGlzdCgpOiBudW1iZXI7Cn0KCi8vIE1vZHVsZQpuYW1lc3BhY2UgU2hhcGVzIHsKCiAgICAvLyBDbGFzcwogICAgZXhwb3J0IGNsYXNzIFBvaW50IGltcGxlbWVudHMgSVBvaW50IHsKICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHsgfQoKICAgICAgICAvLyBJbnN0YW5jZSBtZW1iZXIKICAgICAgICBnZXREaXN0KCkgeyByZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSk7IH0KCiAgICAgICAgLy8gU3RhdGljIG1lbWJlcgogICAgICAgIHN0YXRpYyBvcmlnaW4gPSBuZXcgUG9pbnQoMCwgMCk7CiAgICB9CgogICAgLy8gVmFyaWFibGUgY29tbWVudCBhZnRlciBjbGFzcwogICAgdmFyIGEgPSAxMDsKCiAgICBleHBvcnQgZnVuY3Rpb24gZm9vKCkgewogICAgfQoKICAgIC8qKiAgY29tbWVudCBhZnRlciBmdW5jdGlvbgogICAgKiB0aGlzIGlzIGFub3RoZXIgY29tbWVudCAKICAgICovCiAgICB2YXIgYiA9IDEwOwp9CgovKiogTG9jYWwgVmFyaWFibGUgKi8KdmFyIHA6IElQb2ludCA9IG5ldyBTaGFwZXMuUG9pbnQoMywgNCk7CnZhciBkaXN0ID0gcC5nZXREaXN0KCk7
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt
index 834df1ff0f8..ce853512d9a 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt
@@ -304,15 +304,13 @@ sourceFile:sourceMap-FileWithComments.ts
---
>>> Shapes.Point = Point;
1 >^^^^
-2 > ^^^^^^^
-3 > ^^^^^
-4 > ^^^^^^^^
-5 > ^
-6 > ^^^^^^^^^^^->
+2 > ^^^^^^^^^^^^
+3 > ^^^^^^^^
+4 > ^
+5 > ^^^^^^^^^^^->
1 >
-2 >
-3 > Point
-4 > implements IPoint {
+2 > Point
+3 > implements IPoint {
> // Constructor
> constructor(public x: number, public y: number) { }
>
@@ -322,12 +320,11 @@ sourceFile:sourceMap-FileWithComments.ts
> // Static member
> static origin = new Point(0, 0);
> }
-5 >
+4 >
1 >Emitted(17, 5) Source(10, 18) + SourceIndex(0)
-2 >Emitted(17, 12) Source(10, 18) + SourceIndex(0)
-3 >Emitted(17, 17) Source(10, 23) + SourceIndex(0)
-4 >Emitted(17, 25) Source(19, 6) + SourceIndex(0)
-5 >Emitted(17, 26) Source(19, 6) + SourceIndex(0)
+2 >Emitted(17, 17) Source(10, 23) + SourceIndex(0)
+3 >Emitted(17, 25) Source(19, 6) + SourceIndex(0)
+4 >Emitted(17, 26) Source(19, 6) + SourceIndex(0)
---
>>> // Variable comment after class
1->^^^^
@@ -386,22 +383,19 @@ sourceFile:sourceMap-FileWithComments.ts
---
>>> Shapes.foo = foo;
1->^^^^
-2 > ^^^^^^^
-3 > ^^^
-4 > ^^^^^^
-5 > ^
-6 > ^^^^^^^^^^^->
+2 > ^^^^^^^^^^
+3 > ^^^^^^
+4 > ^
+5 > ^^^^^^^^^^^->
1->
-2 >
-3 > foo
-4 > () {
+2 > foo
+3 > () {
> }
-5 >
+4 >
1->Emitted(22, 5) Source(24, 21) + SourceIndex(0)
-2 >Emitted(22, 12) Source(24, 21) + SourceIndex(0)
-3 >Emitted(22, 15) Source(24, 24) + SourceIndex(0)
-4 >Emitted(22, 21) Source(25, 6) + SourceIndex(0)
-5 >Emitted(22, 22) Source(25, 6) + SourceIndex(0)
+2 >Emitted(22, 15) Source(24, 24) + SourceIndex(0)
+3 >Emitted(22, 21) Source(25, 6) + SourceIndex(0)
+4 >Emitted(22, 22) Source(25, 6) + SourceIndex(0)
---
>>> /** comment after function
1->^^^^
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt.diff
index 7870f094bd2..65a757b6d7e 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMap-FileWithComments.sourcemap.txt.diff
@@ -86,76 +86,4 @@
+1->Emitted(15, 5) Source(17, 9) + SourceIndex(0)
2 >Emitted(15, 21) Source(17, 25) + SourceIndex(0)
---
- >>> Point.origin = new Point(0, 0);
-@@= skipped -49, +56 lines =@@
- ---
- >>> Shapes.Point = Point;
- 1 >^^^^
--2 > ^^^^^^^^^^^^
--3 > ^^^^^^^^
--4 > ^
--5 > ^^^^^^^^^^^->
-+2 > ^^^^^^^
-+3 > ^^^^^
-+4 > ^^^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^->
- 1 >
--2 > Point
--3 > implements IPoint {
-+2 >
-+3 > Point
-+4 > implements IPoint {
- > // Constructor
- > constructor(public x: number, public y: number) { }
- >
-@@= skipped -16, +18 lines =@@
- > // Static member
- > static origin = new Point(0, 0);
- > }
--4 >
-+5 >
- 1 >Emitted(17, 5) Source(10, 18) + SourceIndex(0)
--2 >Emitted(17, 17) Source(10, 23) + SourceIndex(0)
--3 >Emitted(17, 25) Source(19, 6) + SourceIndex(0)
--4 >Emitted(17, 26) Source(19, 6) + SourceIndex(0)
-+2 >Emitted(17, 12) Source(10, 18) + SourceIndex(0)
-+3 >Emitted(17, 17) Source(10, 23) + SourceIndex(0)
-+4 >Emitted(17, 25) Source(19, 6) + SourceIndex(0)
-+5 >Emitted(17, 26) Source(19, 6) + SourceIndex(0)
- ---
- >>> // Variable comment after class
- 1->^^^^
-@@= skipped -63, +64 lines =@@
- ---
- >>> Shapes.foo = foo;
- 1->^^^^
--2 > ^^^^^^^^^^
--3 > ^^^^^^
--4 > ^
--5 > ^^^^^^^^^^^->
-+2 > ^^^^^^^
-+3 > ^^^
-+4 > ^^^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^->
- 1->
--2 > foo
--3 > () {
-+2 >
-+3 > foo
-+4 > () {
- > }
--4 >
-+5 >
- 1->Emitted(22, 5) Source(24, 21) + SourceIndex(0)
--2 >Emitted(22, 15) Source(24, 24) + SourceIndex(0)
--3 >Emitted(22, 21) Source(25, 6) + SourceIndex(0)
--4 >Emitted(22, 22) Source(25, 6) + SourceIndex(0)
-+2 >Emitted(22, 12) Source(24, 21) + SourceIndex(0)
-+3 >Emitted(22, 15) Source(24, 24) + SourceIndex(0)
-+4 >Emitted(22, 21) Source(25, 6) + SourceIndex(0)
-+5 >Emitted(22, 22) Source(25, 6) + SourceIndex(0)
- ---
- >>> /** comment after function
- 1->^^^^
\ No newline at end of file
+ >>> Point.origin = new Point(0, 0);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map b/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map
index 267209aa476..21d746999c0 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map
@@ -1,3 +1,3 @@
//// [sourceMapSample.js.map]
-{"version":3,"file":"sourceMapSample.js","sourceRoot":"","sources":["sourceMapSample.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkCZ;AAlCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAkChB;IAlCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAuB;YACtD,IAAI,QAAQ,GAAc,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAlCa,GAAG,GAAH,IAAA,GAAG,KAAH,IAAA,GAAG,QAkChB;AAAD,CAAC,EAlCS,GAAG,KAAH,GAAG,QAkCZ"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncykgew0KICAgICAgICAgICAgdmFyIGdyZWV0ZXJzID0gW107DQogICAgICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdEdyZWV0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGdyZWV0ZXJzLnB1c2gobmV3IEdyZWV0ZXIocmVzdEdyZWV0aW5nc1tpXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGdyZWV0ZXJzOw0KICAgICAgICB9DQogICAgICAgIHZhciBiID0gZm9vMigiSGVsbG8iLCAiV29ybGQiLCAiISIpOw0KICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICAgIGJbal0uZ3JlZXQoKTsNCiAgICAgICAgfQ0KICAgIH0pKEJhciA9IEZvby5CYXIgfHwgKEZvby5CYXIgPSB7fSkpOw0KfSkoRm9vIHx8IChGb28gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwU2FtcGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwU2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwU2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQ1o7QUFsQ0QsV0FBVSxHQUFHO0lBQUMsSUFBQSxHQUFHLENBa0NoQjtJQWxDYSxXQUFBLEdBQUc7UUFDYixZQUFZLENBQUM7UUFFYixNQUFNLE9BQU87WUFDVCxZQUFtQixRQUFnQjtnQ0FBaEIsUUFBUTtZQUMzQixDQUFDO1lBRUQsS0FBSztnQkFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxDQUFDO1NBQ0o7UUFHRCxTQUFTLEdBQUcsQ0FBQyxRQUFnQjtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsU0FBUyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxHQUFHLGFBQXVCO1lBQ3RELElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUMsRUFsQ2EsR0FBRyxHQUFILElBQUEsR0FBRyxLQUFILElBQUEsR0FBRyxRQWtDaEI7QUFBRCxDQUFDLEVBbENTLEdBQUcsS0FBSCxHQUFHLFFBa0NaIn0=,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBGb28uQmFyLkdyZWV0ZXIgewogICAgICAgIHJldHVybiBuZXcgR3JlZXRlcihncmVldGluZyk7CiAgICB9CgogICAgdmFyIGdyZWV0ZXIgPSBuZXcgR3JlZXRlcigiSGVsbG8sIHdvcmxkISIpOwogICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsKCiAgICBmdW5jdGlvbiBmb28yKGdyZWV0aW5nOiBzdHJpbmcsIC4uLnJlc3RHcmVldGluZ3M6IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsKICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
+{"version":3,"file":"sourceMapSample.js","sourceRoot":"","sources":["sourceMapSample.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkCZ;AAlCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAkChB;IAlCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAuB;YACtD,IAAI,QAAQ,GAAc,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAlCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAkChB;AAAD,CAAC,EAlCS,GAAG,KAAH,GAAG,QAkCZ"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncykgew0KICAgICAgICAgICAgdmFyIGdyZWV0ZXJzID0gW107DQogICAgICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdEdyZWV0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGdyZWV0ZXJzLnB1c2gobmV3IEdyZWV0ZXIocmVzdEdyZWV0aW5nc1tpXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGdyZWV0ZXJzOw0KICAgICAgICB9DQogICAgICAgIHZhciBiID0gZm9vMigiSGVsbG8iLCAiV29ybGQiLCAiISIpOw0KICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICAgIGJbal0uZ3JlZXQoKTsNCiAgICAgICAgfQ0KICAgIH0pKEJhciA9IEZvby5CYXIgfHwgKEZvby5CYXIgPSB7fSkpOw0KfSkoRm9vIHx8IChGb28gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwU2FtcGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwU2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwU2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQ1o7QUFsQ0QsV0FBVSxHQUFHO0lBQUMsSUFBQSxHQUFHLENBa0NoQjtJQWxDYSxXQUFBLEdBQUc7UUFDYixZQUFZLENBQUM7UUFFYixNQUFNLE9BQU87WUFDVCxZQUFtQixRQUFnQjtnQ0FBaEIsUUFBUTtZQUMzQixDQUFDO1lBRUQsS0FBSztnQkFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxDQUFDO1NBQ0o7UUFHRCxTQUFTLEdBQUcsQ0FBQyxRQUFnQjtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsU0FBUyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxHQUFHLGFBQXVCO1lBQ3RELElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUMsRUFsQ2EsR0FBRyxHQUFILE9BQUcsS0FBSCxPQUFHLFFBa0NoQjtBQUFELENBQUMsRUFsQ1MsR0FBRyxLQUFILEdBQUcsUUFrQ1oifQ==,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBGb28uQmFyLkdyZWV0ZXIgewogICAgICAgIHJldHVybiBuZXcgR3JlZXRlcihncmVldGluZyk7CiAgICB9CgogICAgdmFyIGdyZWV0ZXIgPSBuZXcgR3JlZXRlcigiSGVsbG8sIHdvcmxkISIpOwogICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsKCiAgICBmdW5jdGlvbiBmb28yKGdyZWV0aW5nOiBzdHJpbmcsIC4uLnJlc3RHcmVldGluZ3M6IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsKICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map.diff
index a918fa07581..f95aff73c84 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapSample.js.map.diff
@@ -4,5 +4,5 @@
//// [sourceMapSample.js.map]
-{"version":3,"file":"sourceMapSample.js","sourceRoot":"","sources":["sourceMapSample.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkCZ;AAlCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAkChB;IAlCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gBAAhB,aAAQ,GAAR,QAAQ,CAAQ;YACnC,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAuB;YACtD,IAAI,QAAQ,GAAc,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAlCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAkChB;AAAD,CAAC,EAlCS,GAAG,KAAH,GAAG,QAkCZ"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncykgew0KICAgICAgICAgICAgdmFyIGdyZWV0ZXJzID0gW107DQogICAgICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdEdyZWV0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGdyZWV0ZXJzLnB1c2gobmV3IEdyZWV0ZXIocmVzdEdyZWV0aW5nc1tpXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGdyZWV0ZXJzOw0KICAgICAgICB9DQogICAgICAgIHZhciBiID0gZm9vMigiSGVsbG8iLCAiV29ybGQiLCAiISIpOw0KICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICAgIGJbal0uZ3JlZXQoKTsNCiAgICAgICAgfQ0KICAgIH0pKEJhciA9IEZvby5CYXIgfHwgKEZvby5CYXIgPSB7fSkpOw0KfSkoRm9vIHx8IChGb28gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwU2FtcGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwU2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwU2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQ1o7QUFsQ0QsV0FBVSxHQUFHO0lBQUMsSUFBQSxHQUFHLENBa0NoQjtJQWxDYSxXQUFBLEdBQUc7UUFDYixZQUFZLENBQUM7UUFFYixNQUFNLE9BQU87WUFDVCxZQUFtQixRQUFnQjtnQkFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtZQUNuQyxDQUFDO1lBRUQsS0FBSztnQkFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxDQUFDO1NBQ0o7UUFHRCxTQUFTLEdBQUcsQ0FBQyxRQUFnQjtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsU0FBUyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxHQUFHLGFBQXVCO1lBQ3RELElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUMsRUFsQ2EsR0FBRyxHQUFILE9BQUcsS0FBSCxPQUFHLFFBa0NoQjtBQUFELENBQUMsRUFsQ1MsR0FBRyxLQUFILEdBQUcsUUFrQ1oifQ==,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBGb28uQmFyLkdyZWV0ZXIgewogICAgICAgIHJldHVybiBuZXcgR3JlZXRlcihncmVldGluZyk7CiAgICB9CgogICAgdmFyIGdyZWV0ZXIgPSBuZXcgR3JlZXRlcigiSGVsbG8sIHdvcmxkISIpOwogICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsKCiAgICBmdW5jdGlvbiBmb28yKGdyZWV0aW5nOiBzdHJpbmcsIC4uLnJlc3RHcmVldGluZ3M6IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsKICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
-+{"version":3,"file":"sourceMapSample.js","sourceRoot":"","sources":["sourceMapSample.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkCZ;AAlCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAkChB;IAlCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAuB;YACtD,IAAI,QAAQ,GAAc,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAlCa,GAAG,GAAH,IAAA,GAAG,KAAH,IAAA,GAAG,QAkChB;AAAD,CAAC,EAlCS,GAAG,KAAH,GAAG,QAkCZ"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncykgew0KICAgICAgICAgICAgdmFyIGdyZWV0ZXJzID0gW107DQogICAgICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdEdyZWV0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGdyZWV0ZXJzLnB1c2gobmV3IEdyZWV0ZXIocmVzdEdyZWV0aW5nc1tpXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGdyZWV0ZXJzOw0KICAgICAgICB9DQogICAgICAgIHZhciBiID0gZm9vMigiSGVsbG8iLCAiV29ybGQiLCAiISIpOw0KICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICAgIGJbal0uZ3JlZXQoKTsNCiAgICAgICAgfQ0KICAgIH0pKEJhciA9IEZvby5CYXIgfHwgKEZvby5CYXIgPSB7fSkpOw0KfSkoRm9vIHx8IChGb28gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwU2FtcGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwU2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwU2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQ1o7QUFsQ0QsV0FBVSxHQUFHO0lBQUMsSUFBQSxHQUFHLENBa0NoQjtJQWxDYSxXQUFBLEdBQUc7UUFDYixZQUFZLENBQUM7UUFFYixNQUFNLE9BQU87WUFDVCxZQUFtQixRQUFnQjtnQ0FBaEIsUUFBUTtZQUMzQixDQUFDO1lBRUQsS0FBSztnQkFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxDQUFDO1NBQ0o7UUFHRCxTQUFTLEdBQUcsQ0FBQyxRQUFnQjtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsU0FBUyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxHQUFHLGFBQXVCO1lBQ3RELElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUMsRUFsQ2EsR0FBRyxHQUFILElBQUEsR0FBRyxLQUFILElBQUEsR0FBRyxRQWtDaEI7QUFBRCxDQUFDLEVBbENTLEdBQUcsS0FBSCxHQUFHLFFBa0NaIn0=,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBGb28uQmFyLkdyZWV0ZXIgewogICAgICAgIHJldHVybiBuZXcgR3JlZXRlcihncmVldGluZyk7CiAgICB9CgogICAgdmFyIGdyZWV0ZXIgPSBuZXcgR3JlZXRlcigiSGVsbG8sIHdvcmxkISIpOwogICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsKCiAgICBmdW5jdGlvbiBmb28yKGdyZWV0aW5nOiBzdHJpbmcsIC4uLnJlc3RHcmVldGluZ3M6IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsKICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
\ No newline at end of file
++{"version":3,"file":"sourceMapSample.js","sourceRoot":"","sources":["sourceMapSample.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAkCZ;AAlCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAkChB;IAlCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAuB;YACtD,IAAI,QAAQ,GAAc,EAAE,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAlCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAkChB;AAAD,CAAC,EAlCS,GAAG,KAAH,GAAG,QAkCZ"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncykgew0KICAgICAgICAgICAgdmFyIGdyZWV0ZXJzID0gW107DQogICAgICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdEdyZWV0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGdyZWV0ZXJzLnB1c2gobmV3IEdyZWV0ZXIocmVzdEdyZWV0aW5nc1tpXSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGdyZWV0ZXJzOw0KICAgICAgICB9DQogICAgICAgIHZhciBiID0gZm9vMigiSGVsbG8iLCAiV29ybGQiLCAiISIpOw0KICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICAgIGJbal0uZ3JlZXQoKTsNCiAgICAgICAgfQ0KICAgIH0pKEJhciA9IEZvby5CYXIgfHwgKEZvby5CYXIgPSB7fSkpOw0KfSkoRm9vIHx8IChGb28gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwU2FtcGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwU2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwU2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEdBQUcsQ0FrQ1o7QUFsQ0QsV0FBVSxHQUFHO0lBQUMsSUFBQSxHQUFHLENBa0NoQjtJQWxDYSxXQUFBLEdBQUc7UUFDYixZQUFZLENBQUM7UUFFYixNQUFNLE9BQU87WUFDVCxZQUFtQixRQUFnQjtnQ0FBaEIsUUFBUTtZQUMzQixDQUFDO1lBRUQsS0FBSztnQkFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUM1QyxDQUFDO1NBQ0o7UUFHRCxTQUFTLEdBQUcsQ0FBQyxRQUFnQjtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsU0FBUyxJQUFJLENBQUMsUUFBZ0IsRUFBRSxHQUFHLGFBQXVCO1lBQ3RELElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUMsRUFsQ2EsR0FBRyxHQUFILE9BQUcsS0FBSCxPQUFHLFFBa0NoQjtBQUFELENBQUMsRUFsQ1MsR0FBRyxLQUFILEdBQUcsUUFrQ1oifQ==,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBGb28uQmFyLkdyZWV0ZXIgewogICAgICAgIHJldHVybiBuZXcgR3JlZXRlcihncmVldGluZyk7CiAgICB9CgogICAgdmFyIGdyZWV0ZXIgPSBuZXcgR3JlZXRlcigiSGVsbG8sIHdvcmxkISIpOwogICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsKCiAgICBmdW5jdGlvbiBmb28yKGdyZWV0aW5nOiBzdHJpbmcsIC4uLnJlc3RHcmVldGluZ3M6IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsKICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt
index ba9ba30d8fc..cb914db3acb 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt
@@ -744,24 +744,20 @@ sourceFile:sourceMapSample.ts
3 > ^^
4 > ^^^
5 > ^^^
-6 > ^^^^
-7 > ^^^
-8 > ^^^^^
-9 > ^^^^
-10> ^^^
-11> ^^^^^^^^
+6 > ^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > Bar
5 >
-6 >
-7 > Bar
-8 >
-9 >
-10> Bar
-11> {
+6 > Bar
+7 >
+8 > Bar
+9 > {
> "use strict";
>
> class Greeter {
@@ -801,12 +797,10 @@ sourceFile:sourceMapSample.ts
3 >Emitted(32, 8) Source(1, 15) + SourceIndex(0)
4 >Emitted(32, 11) Source(1, 18) + SourceIndex(0)
5 >Emitted(32, 14) Source(1, 15) + SourceIndex(0)
-6 >Emitted(32, 18) Source(1, 15) + SourceIndex(0)
-7 >Emitted(32, 21) Source(1, 18) + SourceIndex(0)
-8 >Emitted(32, 26) Source(1, 15) + SourceIndex(0)
-9 >Emitted(32, 30) Source(1, 15) + SourceIndex(0)
-10>Emitted(32, 33) Source(1, 18) + SourceIndex(0)
-11>Emitted(32, 41) Source(35, 2) + SourceIndex(0)
+6 >Emitted(32, 21) Source(1, 18) + SourceIndex(0)
+7 >Emitted(32, 26) Source(1, 15) + SourceIndex(0)
+8 >Emitted(32, 33) Source(1, 18) + SourceIndex(0)
+9 >Emitted(32, 41) Source(35, 2) + SourceIndex(0)
---
>>>})(Foo || (Foo = {}));
1 >
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt.diff
index 7135640cb4b..0fc3476fa89 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapSample.sourcemap.txt.diff
@@ -33,54 +33,4 @@
+1 >: string) {
>
2 > }
- 1 >Emitted(10, 13) Source(6, 9) + SourceIndex(0)
-@@= skipped -582, +573 lines =@@
- 3 > ^^
- 4 > ^^^
- 5 > ^^^
--6 > ^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^
-+7 > ^^^
-+8 > ^^^^^
-+9 > ^^^^
-+10> ^^^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > Bar
- 5 >
--6 > Bar
--7 >
--8 > Bar
--9 > {
-+6 >
-+7 > Bar
-+8 >
-+9 >
-+10> Bar
-+11> {
- > "use strict";
- >
- > class Greeter {
-@@= skipped -53, +57 lines =@@
- 3 >Emitted(32, 8) Source(1, 15) + SourceIndex(0)
- 4 >Emitted(32, 11) Source(1, 18) + SourceIndex(0)
- 5 >Emitted(32, 14) Source(1, 15) + SourceIndex(0)
--6 >Emitted(32, 21) Source(1, 18) + SourceIndex(0)
--7 >Emitted(32, 26) Source(1, 15) + SourceIndex(0)
--8 >Emitted(32, 33) Source(1, 18) + SourceIndex(0)
--9 >Emitted(32, 41) Source(35, 2) + SourceIndex(0)
-+6 >Emitted(32, 18) Source(1, 15) + SourceIndex(0)
-+7 >Emitted(32, 21) Source(1, 18) + SourceIndex(0)
-+8 >Emitted(32, 26) Source(1, 15) + SourceIndex(0)
-+9 >Emitted(32, 30) Source(1, 15) + SourceIndex(0)
-+10>Emitted(32, 33) Source(1, 18) + SourceIndex(0)
-+11>Emitted(32, 41) Source(35, 2) + SourceIndex(0)
- ---
- >>>})(Foo || (Foo = {}));
- 1 >
\ No newline at end of file
+ 1 >Emitted(10, 13) Source(6, 9) + SourceIndex(0)
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map
index 9b65d369b29..5db9c23f47f 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map
@@ -1,3 +1,3 @@
//// [sourceMapValidationClasses.js.map]
-{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAmCZ;AAnCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAmChB;IAnCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAa,CAAC,mBAA6B;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCa,GAAG,GAAH,IAAA,GAAG,KAAH,IAAA,GAAG,QAmChB;AAAD,CAAC,EAnCS,GAAG,KAAH,GAAG,QAmCZ"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncyAvKiBtb3JlIGdyZWV0aW5nICovKSB7DQogICAgICAgICAgICB2YXIgZ3JlZXRlcnMgPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8NCiAgICAgICAgICAgIGdyZWV0ZXJzWzBdID0gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN0R3JlZXRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZ3JlZXRlcnM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7DQogICAgICAgIC8vIFRoaXMgaXMgc2ltcGxlIHNpZ25sZSBsaW5lIGNvbW1lbnQNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgICBiW2pdLmdyZWV0KCk7DQogICAgICAgIH0NCiAgICB9KShCYXIgPSBGb28uQmFyIHx8IChGb28uQmFyID0ge30pKTsNCn0pKEZvbyB8fCAoRm9vID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25DbGFzc2VzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkNsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uQ2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVSxHQUFHLENBbUNaO0FBbkNELFdBQVUsR0FBRztJQUFDLElBQUEsR0FBRyxDQW1DaEI7SUFuQ2EsV0FBQSxHQUFHO1FBQ2IsWUFBWSxDQUFDO1FBRWIsTUFBTSxPQUFPO1lBQ1QsWUFBbUIsUUFBZ0I7Z0NBQWhCLFFBQVE7WUFDM0IsQ0FBQztZQUVELEtBQUs7Z0JBQ0QsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDNUMsQ0FBQztTQUNKO1FBR0QsU0FBUyxHQUFHLENBQUMsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLFNBQVMsSUFBSSxDQUFDLFFBQWdCLEVBQUUsR0FBRyxhQUFhLENBQUMsbUJBQTZCO1lBQzFFLElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtZQUN4RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDLEVBbkNhLEdBQUcsR0FBSCxJQUFBLEdBQUcsS0FBSCxJQUFBLEdBQUcsUUFtQ2hCO0FBQUQsQ0FBQyxFQW5DUyxHQUFHLEtBQUgsR0FBRyxRQW1DWiJ9,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBHcmVldGVyIHsKICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOwogICAgfQoKICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsKICAgIHZhciBzdHIgPSBncmVldGVyLmdyZWV0KCk7CgogICAgZnVuY3Rpb24gZm9vMihncmVldGluZzogc3RyaW5nLCAuLi5yZXN0R3JlZXRpbmdzIC8qIG1vcmUgZ3JlZXRpbmcgKi86IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8KICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICAvLyBUaGlzIGlzIHNpbXBsZSBzaWdubGUgbGluZSBjb21tZW50CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
+{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAmCZ;AAnCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAmChB;IAnCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAa,CAAC,mBAA6B;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAmChB;AAAD,CAAC,EAnCS,GAAG,KAAH,GAAG,QAmCZ"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncyAvKiBtb3JlIGdyZWV0aW5nICovKSB7DQogICAgICAgICAgICB2YXIgZ3JlZXRlcnMgPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8NCiAgICAgICAgICAgIGdyZWV0ZXJzWzBdID0gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN0R3JlZXRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZ3JlZXRlcnM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7DQogICAgICAgIC8vIFRoaXMgaXMgc2ltcGxlIHNpZ25sZSBsaW5lIGNvbW1lbnQNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgICBiW2pdLmdyZWV0KCk7DQogICAgICAgIH0NCiAgICB9KShCYXIgPSBGb28uQmFyIHx8IChGb28uQmFyID0ge30pKTsNCn0pKEZvbyB8fCAoRm9vID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25DbGFzc2VzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkNsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uQ2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVSxHQUFHLENBbUNaO0FBbkNELFdBQVUsR0FBRztJQUFDLElBQUEsR0FBRyxDQW1DaEI7SUFuQ2EsV0FBQSxHQUFHO1FBQ2IsWUFBWSxDQUFDO1FBRWIsTUFBTSxPQUFPO1lBQ1QsWUFBbUIsUUFBZ0I7Z0NBQWhCLFFBQVE7WUFDM0IsQ0FBQztZQUVELEtBQUs7Z0JBQ0QsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDNUMsQ0FBQztTQUNKO1FBR0QsU0FBUyxHQUFHLENBQUMsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLFNBQVMsSUFBSSxDQUFDLFFBQWdCLEVBQUUsR0FBRyxhQUFhLENBQUMsbUJBQTZCO1lBQzFFLElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtZQUN4RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDLEVBbkNhLEdBQUcsR0FBSCxPQUFHLEtBQUgsT0FBRyxRQW1DaEI7QUFBRCxDQUFDLEVBbkNTLEdBQUcsS0FBSCxHQUFHLFFBbUNaIn0=,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBHcmVldGVyIHsKICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOwogICAgfQoKICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsKICAgIHZhciBzdHIgPSBncmVldGVyLmdyZWV0KCk7CgogICAgZnVuY3Rpb24gZm9vMihncmVldGluZzogc3RyaW5nLCAuLi5yZXN0R3JlZXRpbmdzIC8qIG1vcmUgZ3JlZXRpbmcgKi86IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8KICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICAvLyBUaGlzIGlzIHNpbXBsZSBzaWdubGUgbGluZSBjb21tZW50CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map.diff
index ff68da5bbf5..83a78ae7665 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.js.map.diff
@@ -4,5 +4,5 @@
//// [sourceMapValidationClasses.js.map]
-{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAmCZ;AAnCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAmChB;IAnCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gBAAhB,aAAQ,GAAR,QAAQ,CAAQ;YACnC,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,cAAc,mBAA6B;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAmChB;AAAD,CAAC,EAnCS,GAAG,KAAH,GAAG,QAmCZ"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncyAvKiBtb3JlIGdyZWV0aW5nICovKSB7DQogICAgICAgICAgICB2YXIgZ3JlZXRlcnMgPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8NCiAgICAgICAgICAgIGdyZWV0ZXJzWzBdID0gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN0R3JlZXRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZ3JlZXRlcnM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7DQogICAgICAgIC8vIFRoaXMgaXMgc2ltcGxlIHNpZ25sZSBsaW5lIGNvbW1lbnQNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgICBiW2pdLmdyZWV0KCk7DQogICAgICAgIH0NCiAgICB9KShCYXIgPSBGb28uQmFyIHx8IChGb28uQmFyID0ge30pKTsNCn0pKEZvbyB8fCAoRm9vID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25DbGFzc2VzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkNsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uQ2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVSxHQUFHLENBbUNaO0FBbkNELFdBQVUsR0FBRztJQUFDLElBQUEsR0FBRyxDQW1DaEI7SUFuQ2EsV0FBQSxHQUFHO1FBQ2IsWUFBWSxDQUFDO1FBRWIsTUFBTSxPQUFPO1lBQ1QsWUFBbUIsUUFBZ0I7Z0JBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7WUFDbkMsQ0FBQztZQUVELEtBQUs7Z0JBQ0QsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDNUMsQ0FBQztTQUNKO1FBR0QsU0FBUyxHQUFHLENBQUMsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLFNBQVMsSUFBSSxDQUFDLFFBQWdCLEVBQUUsR0FBRyxjQUFjLG1CQUE2QjtZQUMxRSxJQUFJLFFBQVEsR0FBYyxFQUFFLENBQUMsQ0FBQywwQkFBMEI7WUFDeEQsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLHFDQUFxQztRQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQyxFQW5DYSxHQUFHLEdBQUgsT0FBRyxLQUFILE9BQUcsUUFtQ2hCO0FBQUQsQ0FBQyxFQW5DUyxHQUFHLEtBQUgsR0FBRyxRQW1DWiJ9,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBHcmVldGVyIHsKICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOwogICAgfQoKICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsKICAgIHZhciBzdHIgPSBncmVldGVyLmdyZWV0KCk7CgogICAgZnVuY3Rpb24gZm9vMihncmVldGluZzogc3RyaW5nLCAuLi5yZXN0R3JlZXRpbmdzIC8qIG1vcmUgZ3JlZXRpbmcgKi86IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8KICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICAvLyBUaGlzIGlzIHNpbXBsZSBzaWdubGUgbGluZSBjb21tZW50CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
-+{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAmCZ;AAnCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAmChB;IAnCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAa,CAAC,mBAA6B;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCa,GAAG,GAAH,IAAA,GAAG,KAAH,IAAA,GAAG,QAmChB;AAAD,CAAC,EAnCS,GAAG,KAAH,GAAG,QAmCZ"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncyAvKiBtb3JlIGdyZWV0aW5nICovKSB7DQogICAgICAgICAgICB2YXIgZ3JlZXRlcnMgPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8NCiAgICAgICAgICAgIGdyZWV0ZXJzWzBdID0gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN0R3JlZXRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZ3JlZXRlcnM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7DQogICAgICAgIC8vIFRoaXMgaXMgc2ltcGxlIHNpZ25sZSBsaW5lIGNvbW1lbnQNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgICBiW2pdLmdyZWV0KCk7DQogICAgICAgIH0NCiAgICB9KShCYXIgPSBGb28uQmFyIHx8IChGb28uQmFyID0ge30pKTsNCn0pKEZvbyB8fCAoRm9vID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25DbGFzc2VzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkNsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uQ2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVSxHQUFHLENBbUNaO0FBbkNELFdBQVUsR0FBRztJQUFDLElBQUEsR0FBRyxDQW1DaEI7SUFuQ2EsV0FBQSxHQUFHO1FBQ2IsWUFBWSxDQUFDO1FBRWIsTUFBTSxPQUFPO1lBQ1QsWUFBbUIsUUFBZ0I7Z0NBQWhCLFFBQVE7WUFDM0IsQ0FBQztZQUVELEtBQUs7Z0JBQ0QsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDNUMsQ0FBQztTQUNKO1FBR0QsU0FBUyxHQUFHLENBQUMsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLFNBQVMsSUFBSSxDQUFDLFFBQWdCLEVBQUUsR0FBRyxhQUFhLENBQUMsbUJBQTZCO1lBQzFFLElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtZQUN4RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDLEVBbkNhLEdBQUcsR0FBSCxJQUFBLEdBQUcsS0FBSCxJQUFBLEdBQUcsUUFtQ2hCO0FBQUQsQ0FBQyxFQW5DUyxHQUFHLEtBQUgsR0FBRyxRQW1DWiJ9,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBHcmVldGVyIHsKICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOwogICAgfQoKICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsKICAgIHZhciBzdHIgPSBncmVldGVyLmdyZWV0KCk7CgogICAgZnVuY3Rpb24gZm9vMihncmVldGluZzogc3RyaW5nLCAuLi5yZXN0R3JlZXRpbmdzIC8qIG1vcmUgZ3JlZXRpbmcgKi86IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8KICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICAvLyBUaGlzIGlzIHNpbXBsZSBzaWdubGUgbGluZSBjb21tZW50CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
\ No newline at end of file
++{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":";AAAA,IAAU,GAAG,CAmCZ;AAnCD,WAAU,GAAG;IAAC,IAAA,GAAG,CAmChB;IAnCa,WAAA,GAAG;QACb,YAAY,CAAC;QAEb,MAAM,OAAO;YACT,YAAmB,QAAgB;gCAAhB,QAAQ;YAC3B,CAAC;YAED,KAAK;gBACD,OAAO,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;SACJ;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB,EAAE,GAAG,aAAa,CAAC,mBAA6B;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCa,GAAG,GAAH,OAAG,KAAH,OAAG,QAmChB;AAAD,CAAC,EAnCS,GAAG,KAAH,GAAG,QAmCZ"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIEZvbzsNCihmdW5jdGlvbiAoRm9vKSB7DQogICAgdmFyIEJhcjsNCiAgICAoZnVuY3Rpb24gKEJhcikgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIGNsYXNzIEdyZWV0ZXIgew0KICAgICAgICAgICAgY29uc3RydWN0b3IoZ3JlZXRpbmcpIHsNCiAgICAgICAgICAgICAgICB0aGlzLmdyZWV0aW5nID0gZ3JlZXRpbmc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBncmVldCgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjxoMT4iICsgdGhpcy5ncmVldGluZyArICI8L2gxPiI7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nKSB7DQogICAgICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICB9DQogICAgICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsNCiAgICAgICAgdmFyIHN0ciA9IGdyZWV0ZXIuZ3JlZXQoKTsNCiAgICAgICAgZnVuY3Rpb24gZm9vMihncmVldGluZywgLi4ucmVzdEdyZWV0aW5ncyAvKiBtb3JlIGdyZWV0aW5nICovKSB7DQogICAgICAgICAgICB2YXIgZ3JlZXRlcnMgPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8NCiAgICAgICAgICAgIGdyZWV0ZXJzWzBdID0gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN0R3JlZXRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZ3JlZXRlcnM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7DQogICAgICAgIC8vIFRoaXMgaXMgc2ltcGxlIHNpZ25sZSBsaW5lIGNvbW1lbnQNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgICBiW2pdLmdyZWV0KCk7DQogICAgICAgIH0NCiAgICB9KShCYXIgPSBGb28uQmFyIHx8IChGb28uQmFyID0ge30pKTsNCn0pKEZvbyB8fCAoRm9vID0ge30pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25DbGFzc2VzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkNsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uQ2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVSxHQUFHLENBbUNaO0FBbkNELFdBQVUsR0FBRztJQUFDLElBQUEsR0FBRyxDQW1DaEI7SUFuQ2EsV0FBQSxHQUFHO1FBQ2IsWUFBWSxDQUFDO1FBRWIsTUFBTSxPQUFPO1lBQ1QsWUFBbUIsUUFBZ0I7Z0NBQWhCLFFBQVE7WUFDM0IsQ0FBQztZQUVELEtBQUs7Z0JBQ0QsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDNUMsQ0FBQztTQUNKO1FBR0QsU0FBUyxHQUFHLENBQUMsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLFNBQVMsSUFBSSxDQUFDLFFBQWdCLEVBQUUsR0FBRyxhQUFhLENBQUMsbUJBQTZCO1lBQzFFLElBQUksUUFBUSxHQUFjLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtZQUN4RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMscUNBQXFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDLEVBbkNhLEdBQUcsR0FBSCxPQUFHLEtBQUgsT0FBRyxRQW1DaEI7QUFBRCxDQUFDLEVBbkNTLEdBQUcsS0FBSCxHQUFHLFFBbUNaIn0=,bmFtZXNwYWNlIEZvby5CYXIgewogICAgInVzZSBzdHJpY3QiOwoKICAgIGNsYXNzIEdyZWV0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBncmVldGluZzogc3RyaW5nKSB7CiAgICAgICAgfQoKICAgICAgICBncmVldCgpIHsKICAgICAgICAgICAgcmV0dXJuICI8aDE+IiArIHRoaXMuZ3JlZXRpbmcgKyAiPC9oMT4iOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gZm9vKGdyZWV0aW5nOiBzdHJpbmcpOiBHcmVldGVyIHsKICAgICAgICByZXR1cm4gbmV3IEdyZWV0ZXIoZ3JlZXRpbmcpOwogICAgfQoKICAgIHZhciBncmVldGVyID0gbmV3IEdyZWV0ZXIoIkhlbGxvLCB3b3JsZCEiKTsKICAgIHZhciBzdHIgPSBncmVldGVyLmdyZWV0KCk7CgogICAgZnVuY3Rpb24gZm9vMihncmVldGluZzogc3RyaW5nLCAuLi5yZXN0R3JlZXRpbmdzIC8qIG1vcmUgZ3JlZXRpbmcgKi86IHN0cmluZ1tdKSB7CiAgICAgICAgdmFyIGdyZWV0ZXJzOiBHcmVldGVyW10gPSBbXTsgLyogaW5saW5lIGJsb2NrIGNvbW1lbnQgKi8KICAgICAgICBncmVldGVyc1swXSA9IG5ldyBHcmVldGVyKGdyZWV0aW5nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3RHcmVldGluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZ3JlZXRlcnMucHVzaChuZXcgR3JlZXRlcihyZXN0R3JlZXRpbmdzW2ldKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ3JlZXRlcnM7CiAgICB9CgogICAgdmFyIGIgPSBmb28yKCJIZWxsbyIsICJXb3JsZCIsICIhIik7CiAgICAvLyBUaGlzIGlzIHNpbXBsZSBzaWdubGUgbGluZSBjb21tZW50CiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqKyspIHsKICAgICAgICBiW2pdLmdyZWV0KCk7CiAgICB9Cn0=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt
index 18f2bf15f79..8af1321c2d8 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt
@@ -766,24 +766,20 @@ sourceFile:sourceMapValidationClasses.ts
3 > ^^
4 > ^^^
5 > ^^^
-6 > ^^^^
-7 > ^^^
-8 > ^^^^^
-9 > ^^^^
-10> ^^^
-11> ^^^^^^^^
+6 > ^^^^^^^
+7 > ^^^^^
+8 > ^^^^^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > Bar
5 >
-6 >
-7 > Bar
-8 >
-9 >
-10> Bar
-11> {
+6 > Bar
+7 >
+8 > Bar
+9 > {
> "use strict";
>
> class Greeter {
@@ -824,12 +820,10 @@ sourceFile:sourceMapValidationClasses.ts
3 >Emitted(33, 8) Source(1, 15) + SourceIndex(0)
4 >Emitted(33, 11) Source(1, 18) + SourceIndex(0)
5 >Emitted(33, 14) Source(1, 15) + SourceIndex(0)
-6 >Emitted(33, 18) Source(1, 15) + SourceIndex(0)
-7 >Emitted(33, 21) Source(1, 18) + SourceIndex(0)
-8 >Emitted(33, 26) Source(1, 15) + SourceIndex(0)
-9 >Emitted(33, 30) Source(1, 15) + SourceIndex(0)
-10>Emitted(33, 33) Source(1, 18) + SourceIndex(0)
-11>Emitted(33, 41) Source(36, 2) + SourceIndex(0)
+6 >Emitted(33, 21) Source(1, 18) + SourceIndex(0)
+7 >Emitted(33, 26) Source(1, 15) + SourceIndex(0)
+8 >Emitted(33, 33) Source(1, 18) + SourceIndex(0)
+9 >Emitted(33, 41) Source(36, 2) + SourceIndex(0)
---
>>>})(Foo || (Foo = {}));
1 >
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt.diff
index 726cc2b45b6..294e654e3d8 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationClasses.sourcemap.txt.diff
@@ -69,54 +69,4 @@
+10>Emitted(20, 69) Source(21, 83) + SourceIndex(0)
---
>>> var greeters = []; /* inline block comment */
- 1 >^^^^^^^^^^^^
-@@= skipped -362, +363 lines =@@
- 3 > ^^
- 4 > ^^^
- 5 > ^^^
--6 > ^^^^^^^
--7 > ^^^^^
--8 > ^^^^^^^
--9 > ^^^^^^^^
-+6 > ^^^^
-+7 > ^^^
-+8 > ^^^^^
-+9 > ^^^^
-+10> ^^^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > Bar
- 5 >
--6 > Bar
--7 >
--8 > Bar
--9 > {
-+6 >
-+7 > Bar
-+8 >
-+9 >
-+10> Bar
-+11> {
- > "use strict";
- >
- > class Greeter {
-@@= skipped -54, +58 lines =@@
- 3 >Emitted(33, 8) Source(1, 15) + SourceIndex(0)
- 4 >Emitted(33, 11) Source(1, 18) + SourceIndex(0)
- 5 >Emitted(33, 14) Source(1, 15) + SourceIndex(0)
--6 >Emitted(33, 21) Source(1, 18) + SourceIndex(0)
--7 >Emitted(33, 26) Source(1, 15) + SourceIndex(0)
--8 >Emitted(33, 33) Source(1, 18) + SourceIndex(0)
--9 >Emitted(33, 41) Source(36, 2) + SourceIndex(0)
-+6 >Emitted(33, 18) Source(1, 15) + SourceIndex(0)
-+7 >Emitted(33, 21) Source(1, 18) + SourceIndex(0)
-+8 >Emitted(33, 26) Source(1, 15) + SourceIndex(0)
-+9 >Emitted(33, 30) Source(1, 15) + SourceIndex(0)
-+10>Emitted(33, 33) Source(1, 18) + SourceIndex(0)
-+11>Emitted(33, 41) Source(36, 2) + SourceIndex(0)
- ---
- >>>})(Foo || (Foo = {}));
- 1 >
\ No newline at end of file
+ 1 >^^^^^^^^^^^^
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map
index 2fd79fec41d..e55c6e64688 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map
@@ -1,3 +1,3 @@
//// [sourceMapValidationImport.js.map]
-{"version":3,"file":"sourceMapValidationImport.js","sourceRoot":"","sources":["sourceMapValidationImport.ts"],"names":[],"mappings":";;;AAAA,IAAiB,CAAC,CAGjB;AAHD,WAAiB,CAAC;IACd,MAAa,CAAC;KACb;IADY,EAAA,CAAC,IACb,CAAA;AACL,CAAC,EAHgB,CAAC,aAAD,CAAC,GAAD,CAAC,QAGjB;AACD,IAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,IAAI,QAAA,CAAC,EAAE,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuYiA9IGV4cG9ydHMubSA9IHZvaWQgMDsNCnZhciBtOw0KKGZ1bmN0aW9uIChtKSB7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0uYyA9IGM7DQp9KShtIHx8IChleHBvcnRzLm0gPSBtID0ge30pKTsNCnZhciBhID0gbS5jOw0KZXhwb3J0cy5iID0gbS5jOw0KdmFyIHggPSBuZXcgYSgpOw0KdmFyIHkgPSBuZXcgZXhwb3J0cy5iKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uSW1wb3J0LmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkltcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25JbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBaUIsQ0FBQyxDQUdqQjtBQUhELFdBQWlCLENBQUM7SUFDZCxNQUFhLENBQUM7S0FDYjtJQURZLEVBQUEsQ0FBQyxJQUNiLENBQUE7QUFDTCxDQUFDLEVBSGdCLENBQUMsYUFBRCxDQUFDLEdBQUQsQ0FBQyxRQUdqQjtBQUNELElBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDRCxRQUFBLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDaEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFBLENBQUMsRUFBRSxDQUFDIn0=,ZXhwb3J0IG5hbWVzcGFjZSBtIHsKICAgIGV4cG9ydCBjbGFzcyBjIHsKICAgIH0KfQppbXBvcnQgYSA9IG0uYzsKZXhwb3J0IGltcG9ydCBiID0gbS5jOwp2YXIgeCA9IG5ldyBhKCk7CnZhciB5ID0gbmV3IGIoKTs=
+{"version":3,"file":"sourceMapValidationImport.js","sourceRoot":"","sources":["sourceMapValidationImport.ts"],"names":[],"mappings":";;;AAAA,IAAiB,CAAC,CAGjB;AAHD,WAAiB,CAAC;IACd,MAAa,CAAC;KACb;IADY,GAAC,IACb,CAAA;AACL,CAAC,EAHgB,CAAC,aAAD,CAAC,GAAD,CAAC,QAGjB;AACD,IAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,IAAI,QAAA,CAAC,EAAE,CAAC"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuYiA9IGV4cG9ydHMubSA9IHZvaWQgMDsNCnZhciBtOw0KKGZ1bmN0aW9uIChtKSB7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0uYyA9IGM7DQp9KShtIHx8IChleHBvcnRzLm0gPSBtID0ge30pKTsNCnZhciBhID0gbS5jOw0KZXhwb3J0cy5iID0gbS5jOw0KdmFyIHggPSBuZXcgYSgpOw0KdmFyIHkgPSBuZXcgZXhwb3J0cy5iKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uSW1wb3J0LmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkltcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25JbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBaUIsQ0FBQyxDQUdqQjtBQUhELFdBQWlCLENBQUM7SUFDZCxNQUFhLENBQUM7S0FDYjtJQURZLEdBQUMsSUFDYixDQUFBO0FBQ0wsQ0FBQyxFQUhnQixDQUFDLGFBQUQsQ0FBQyxHQUFELENBQUMsUUFHakI7QUFDRCxJQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0QsUUFBQSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ2hCLElBQUksQ0FBQyxHQUFHLElBQUksUUFBQSxDQUFDLEVBQUUsQ0FBQyJ9,ZXhwb3J0IG5hbWVzcGFjZSBtIHsKICAgIGV4cG9ydCBjbGFzcyBjIHsKICAgIH0KfQppbXBvcnQgYSA9IG0uYzsKZXhwb3J0IGltcG9ydCBiID0gbS5jOwp2YXIgeCA9IG5ldyBhKCk7CnZhciB5ID0gbmV3IGIoKTs=
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map.diff
index f0a3925e23d..9262ebef9e5 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.js.map.diff
@@ -4,5 +4,5 @@
//// [sourceMapValidationImport.js.map]
-{"version":3,"file":"sourceMapValidationImport.js","sourceRoot":"","sources":["sourceMapValidationImport.ts"],"names":[],"mappings":";;;AAAA,IAAiB,CAAC,CAGjB;AAHD,WAAiB,CAAC;IACd,MAAa,CAAC;KACb;IADY,GAAC,IACb,CAAA;AACL,CAAC,EAHgB,CAAC,iBAAD,CAAC,QAGjB;AACD,IAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,IAAI,SAAC,EAAE,CAAC"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuYiA9IGV4cG9ydHMubSA9IHZvaWQgMDsNCnZhciBtOw0KKGZ1bmN0aW9uIChtKSB7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0uYyA9IGM7DQp9KShtIHx8IChleHBvcnRzLm0gPSBtID0ge30pKTsNCnZhciBhID0gbS5jOw0KZXhwb3J0cy5iID0gbS5jOw0KdmFyIHggPSBuZXcgYSgpOw0KdmFyIHkgPSBuZXcgZXhwb3J0cy5iKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uSW1wb3J0LmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkltcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25JbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBaUIsQ0FBQyxDQUdqQjtBQUhELFdBQWlCLENBQUM7SUFDZCxNQUFhLENBQUM7S0FDYjtJQURZLEdBQUMsSUFDYixDQUFBO0FBQ0wsQ0FBQyxFQUhnQixDQUFDLGlCQUFELENBQUMsUUFHakI7QUFDRCxJQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0QsUUFBQSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ2hCLElBQUksQ0FBQyxHQUFHLElBQUksU0FBQyxFQUFFLENBQUMifQ==,ZXhwb3J0IG5hbWVzcGFjZSBtIHsKICAgIGV4cG9ydCBjbGFzcyBjIHsKICAgIH0KfQppbXBvcnQgYSA9IG0uYzsKZXhwb3J0IGltcG9ydCBiID0gbS5jOwp2YXIgeCA9IG5ldyBhKCk7CnZhciB5ID0gbmV3IGIoKTs=
-+{"version":3,"file":"sourceMapValidationImport.js","sourceRoot":"","sources":["sourceMapValidationImport.ts"],"names":[],"mappings":";;;AAAA,IAAiB,CAAC,CAGjB;AAHD,WAAiB,CAAC;IACd,MAAa,CAAC;KACb;IADY,EAAA,CAAC,IACb,CAAA;AACL,CAAC,EAHgB,CAAC,aAAD,CAAC,GAAD,CAAC,QAGjB;AACD,IAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,IAAI,QAAA,CAAC,EAAE,CAAC"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuYiA9IGV4cG9ydHMubSA9IHZvaWQgMDsNCnZhciBtOw0KKGZ1bmN0aW9uIChtKSB7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0uYyA9IGM7DQp9KShtIHx8IChleHBvcnRzLm0gPSBtID0ge30pKTsNCnZhciBhID0gbS5jOw0KZXhwb3J0cy5iID0gbS5jOw0KdmFyIHggPSBuZXcgYSgpOw0KdmFyIHkgPSBuZXcgZXhwb3J0cy5iKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uSW1wb3J0LmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkltcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25JbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBaUIsQ0FBQyxDQUdqQjtBQUhELFdBQWlCLENBQUM7SUFDZCxNQUFhLENBQUM7S0FDYjtJQURZLEVBQUEsQ0FBQyxJQUNiLENBQUE7QUFDTCxDQUFDLEVBSGdCLENBQUMsYUFBRCxDQUFDLEdBQUQsQ0FBQyxRQUdqQjtBQUNELElBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDRCxRQUFBLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDaEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFBLENBQUMsRUFBRSxDQUFDIn0=,ZXhwb3J0IG5hbWVzcGFjZSBtIHsKICAgIGV4cG9ydCBjbGFzcyBjIHsKICAgIH0KfQppbXBvcnQgYSA9IG0uYzsKZXhwb3J0IGltcG9ydCBiID0gbS5jOwp2YXIgeCA9IG5ldyBhKCk7CnZhciB5ID0gbmV3IGIoKTs=
\ No newline at end of file
++{"version":3,"file":"sourceMapValidationImport.js","sourceRoot":"","sources":["sourceMapValidationImport.ts"],"names":[],"mappings":";;;AAAA,IAAiB,CAAC,CAGjB;AAHD,WAAiB,CAAC;IACd,MAAa,CAAC;KACb;IADY,GAAC,IACb,CAAA;AACL,CAAC,EAHgB,CAAC,aAAD,CAAC,GAAD,CAAC,QAGjB;AACD,IAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,IAAI,QAAA,CAAC,EAAE,CAAC"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsNCmV4cG9ydHMuYiA9IGV4cG9ydHMubSA9IHZvaWQgMDsNCnZhciBtOw0KKGZ1bmN0aW9uIChtKSB7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0uYyA9IGM7DQp9KShtIHx8IChleHBvcnRzLm0gPSBtID0ge30pKTsNCnZhciBhID0gbS5jOw0KZXhwb3J0cy5iID0gbS5jOw0KdmFyIHggPSBuZXcgYSgpOw0KdmFyIHkgPSBuZXcgZXhwb3J0cy5iKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uSW1wb3J0LmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkltcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25JbXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBaUIsQ0FBQyxDQUdqQjtBQUhELFdBQWlCLENBQUM7SUFDZCxNQUFhLENBQUM7S0FDYjtJQURZLEdBQUMsSUFDYixDQUFBO0FBQ0wsQ0FBQyxFQUhnQixDQUFDLGFBQUQsQ0FBQyxHQUFELENBQUMsUUFHakI7QUFDRCxJQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0QsUUFBQSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQ2hCLElBQUksQ0FBQyxHQUFHLElBQUksUUFBQSxDQUFDLEVBQUUsQ0FBQyJ9,ZXhwb3J0IG5hbWVzcGFjZSBtIHsKICAgIGV4cG9ydCBjbGFzcyBjIHsKICAgIH0KfQppbXBvcnQgYSA9IG0uYzsKZXhwb3J0IGltcG9ydCBiID0gbS5jOwp2YXIgeCA9IG5ldyBhKCk7CnZhciB5ID0gbmV3IGIoKTs=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt
index 083d5a6a615..0a4b99757c4 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt
@@ -62,22 +62,19 @@ sourceFile:sourceMapValidationImport.ts
---
>>> m.c = c;
1->^^^^
-2 > ^^
-3 > ^
-4 > ^^^^
-5 > ^
-6 > ^^^^^^^^^^^^^^^^^^^->
+2 > ^^^
+3 > ^^^^
+4 > ^
+5 > ^^^^^^^^^^^^^^^^^^^->
1->
-2 >
-3 > c
-4 > {
+2 > c
+3 > {
> }
-5 >
+4 >
1->Emitted(8, 5) Source(2, 18) + SourceIndex(0)
-2 >Emitted(8, 7) Source(2, 18) + SourceIndex(0)
-3 >Emitted(8, 8) Source(2, 19) + SourceIndex(0)
-4 >Emitted(8, 12) Source(3, 6) + SourceIndex(0)
-5 >Emitted(8, 13) Source(3, 6) + SourceIndex(0)
+2 >Emitted(8, 8) Source(2, 19) + SourceIndex(0)
+3 >Emitted(8, 12) Source(3, 6) + SourceIndex(0)
+4 >Emitted(8, 13) Source(3, 6) + SourceIndex(0)
---
>>>})(m || (exports.m = m = {}));
1->
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt.diff
index f45949739e3..8d79e528c01 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationImport.sourcemap.txt.diff
@@ -1,38 +1,6 @@
--- old.sourceMapValidationImport.sourcemap.txt
+++ new.sourceMapValidationImport.sourcemap.txt
-@@= skipped -61, +61 lines =@@
- ---
- >>> m.c = c;
- 1->^^^^
--2 > ^^^
--3 > ^^^^
--4 > ^
--5 > ^^^^^^^^^^^^^^^^^^^->
-+2 > ^^
-+3 > ^
-+4 > ^^^^
-+5 > ^
-+6 > ^^^^^^^^^^^^^^^^^^^->
- 1->
--2 > c
--3 > {
-+2 >
-+3 > c
-+4 > {
- > }
--4 >
-+5 >
- 1->Emitted(8, 5) Source(2, 18) + SourceIndex(0)
--2 >Emitted(8, 8) Source(2, 19) + SourceIndex(0)
--3 >Emitted(8, 12) Source(3, 6) + SourceIndex(0)
--4 >Emitted(8, 13) Source(3, 6) + SourceIndex(0)
-+2 >Emitted(8, 7) Source(2, 18) + SourceIndex(0)
-+3 >Emitted(8, 8) Source(2, 19) + SourceIndex(0)
-+4 >Emitted(8, 12) Source(3, 6) + SourceIndex(0)
-+5 >Emitted(8, 13) Source(3, 6) + SourceIndex(0)
- ---
- >>>})(m || (exports.m = m = {}));
- 1->
+@@= skipped -80, +80 lines =@@
2 >^
3 > ^^
4 > ^
@@ -59,7 +27,7 @@
> export class c {
> }
> }
-@@= skipped -37, +44 lines =@@
+@@= skipped -18, +22 lines =@@
2 >Emitted(9, 2) Source(4, 2) + SourceIndex(0)
3 >Emitted(9, 4) Source(1, 18) + SourceIndex(0)
4 >Emitted(9, 5) Source(1, 19) + SourceIndex(0)
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map
index 42e08d9705b..03ea693cbad 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map
@@ -1,3 +1,3 @@
//// [sourceMapValidationModule.js.map]
-{"version":3,"file":"sourceMapValidationModule.js","sourceRoot":"","sources":["sourceMapValidationModule.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAGX;AAHD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,EAAE,CAAC;AACR,CAAC,EAHS,EAAE,KAAF,EAAE,QAGX;AACD,IAAU,EAAE,CAQX;AARD,WAAU,EAAE;IACR,IAAU,EAAE,CAEX;IAFD,WAAU,EAAE;QACG,IAAC,GAAG,EAAE,CAAC;IACtB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX;IAED,SAAgB,GAAG;QACf,OAAO,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAFe,GAAA,GAAG,MAElB,CAAA;AACL,CAAC,EARS,EAAE,KAAF,EAAE,QAQX"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0yOw0KKGZ1bmN0aW9uIChtMikgew0KICAgIHZhciBhID0gMTA7DQogICAgYSsrOw0KfSkobTIgfHwgKG0yID0ge30pKTsNCnZhciBtMzsNCihmdW5jdGlvbiAobTMpIHsNCiAgICBsZXQgbTQ7DQogICAgKGZ1bmN0aW9uIChtNCkgew0KICAgICAgICBtNC54ID0gMzA7DQogICAgfSkobTQgfHwgKG00ID0ge30pKTsNCiAgICBmdW5jdGlvbiBmb28oKSB7DQogICAgICAgIHJldHVybiBtNC54Ow0KICAgIH0NCiAgICBtMy5mb28gPSBmb287DQp9KShtMyB8fCAobTMgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25Nb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVUsRUFBRSxDQUdYO0FBSEQsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1gsQ0FBQyxFQUFFLENBQUM7QUFDUixDQUFDLEVBSFMsRUFBRSxLQUFGLEVBQUUsUUFHWDtBQUNELElBQVUsRUFBRSxDQVFYO0FBUkQsV0FBVSxFQUFFO0lBQ1IsSUFBVSxFQUFFLENBRVg7SUFGRCxXQUFVLEVBQUU7UUFDRyxJQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYO0lBRUQsU0FBZ0IsR0FBRztRQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRmUsR0FBQSxHQUFHLE1BRWxCLENBQUE7QUFDTCxDQUFDLEVBUlMsRUFBRSxLQUFGLEVBQUUsUUFRWCJ9,bmFtZXNwYWNlIG0yIHsKICAgIHZhciBhID0gMTA7CiAgICBhKys7Cn0KbmFtZXNwYWNlIG0zIHsKICAgIG5hbWVzcGFjZSBtNCB7CiAgICAgICAgZXhwb3J0IHZhciB4ID0gMzA7CiAgICB9CgogICAgZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICByZXR1cm4gbTQueDsKICAgIH0KfQ==
+{"version":3,"file":"sourceMapValidationModule.js","sourceRoot":"","sources":["sourceMapValidationModule.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAGX;AAHD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,EAAE,CAAC;AACR,CAAC,EAHS,EAAE,KAAF,EAAE,QAGX;AACD,IAAU,EAAE,CAQX;AARD,WAAU,EAAE;IACR,IAAU,EAAE,CAEX;IAFD,WAAU,EAAE;QACG,IAAC,GAAG,EAAE,CAAC;IACtB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX;IAED,SAAgB,GAAG;QACf,OAAO,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAFe,MAAG,MAElB,CAAA;AACL,CAAC,EARS,EAAE,KAAF,EAAE,QAQX"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0yOw0KKGZ1bmN0aW9uIChtMikgew0KICAgIHZhciBhID0gMTA7DQogICAgYSsrOw0KfSkobTIgfHwgKG0yID0ge30pKTsNCnZhciBtMzsNCihmdW5jdGlvbiAobTMpIHsNCiAgICBsZXQgbTQ7DQogICAgKGZ1bmN0aW9uIChtNCkgew0KICAgICAgICBtNC54ID0gMzA7DQogICAgfSkobTQgfHwgKG00ID0ge30pKTsNCiAgICBmdW5jdGlvbiBmb28oKSB7DQogICAgICAgIHJldHVybiBtNC54Ow0KICAgIH0NCiAgICBtMy5mb28gPSBmb287DQp9KShtMyB8fCAobTMgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25Nb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVUsRUFBRSxDQUdYO0FBSEQsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1gsQ0FBQyxFQUFFLENBQUM7QUFDUixDQUFDLEVBSFMsRUFBRSxLQUFGLEVBQUUsUUFHWDtBQUNELElBQVUsRUFBRSxDQVFYO0FBUkQsV0FBVSxFQUFFO0lBQ1IsSUFBVSxFQUFFLENBRVg7SUFGRCxXQUFVLEVBQUU7UUFDRyxJQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYO0lBRUQsU0FBZ0IsR0FBRztRQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRmUsTUFBRyxNQUVsQixDQUFBO0FBQ0wsQ0FBQyxFQVJTLEVBQUUsS0FBRixFQUFFLFFBUVgifQ==,bmFtZXNwYWNlIG0yIHsKICAgIHZhciBhID0gMTA7CiAgICBhKys7Cn0KbmFtZXNwYWNlIG0zIHsKICAgIG5hbWVzcGFjZSBtNCB7CiAgICAgICAgZXhwb3J0IHZhciB4ID0gMzA7CiAgICB9CgogICAgZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICByZXR1cm4gbTQueDsKICAgIH0KfQ==
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map.diff
deleted file mode 100644
index b4e37f1a3bb..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.js.map.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.sourceMapValidationModule.js.map
-+++ new.sourceMapValidationModule.js.map
-@@= skipped -0, +0 lines =@@
- //// [sourceMapValidationModule.js.map]
--{"version":3,"file":"sourceMapValidationModule.js","sourceRoot":"","sources":["sourceMapValidationModule.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAGX;AAHD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,EAAE,CAAC;AACR,CAAC,EAHS,EAAE,KAAF,EAAE,QAGX;AACD,IAAU,EAAE,CAQX;AARD,WAAU,EAAE;IACR,IAAU,EAAE,CAEX;IAFD,WAAU,EAAE;QACG,IAAC,GAAG,EAAE,CAAC;IACtB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX;IAED,SAAgB,GAAG;QACf,OAAO,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAFe,MAAG,MAElB,CAAA;AACL,CAAC,EARS,EAAE,KAAF,EAAE,QAQX"}
--//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0yOw0KKGZ1bmN0aW9uIChtMikgew0KICAgIHZhciBhID0gMTA7DQogICAgYSsrOw0KfSkobTIgfHwgKG0yID0ge30pKTsNCnZhciBtMzsNCihmdW5jdGlvbiAobTMpIHsNCiAgICBsZXQgbTQ7DQogICAgKGZ1bmN0aW9uIChtNCkgew0KICAgICAgICBtNC54ID0gMzA7DQogICAgfSkobTQgfHwgKG00ID0ge30pKTsNCiAgICBmdW5jdGlvbiBmb28oKSB7DQogICAgICAgIHJldHVybiBtNC54Ow0KICAgIH0NCiAgICBtMy5mb28gPSBmb287DQp9KShtMyB8fCAobTMgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25Nb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVUsRUFBRSxDQUdYO0FBSEQsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1gsQ0FBQyxFQUFFLENBQUM7QUFDUixDQUFDLEVBSFMsRUFBRSxLQUFGLEVBQUUsUUFHWDtBQUNELElBQVUsRUFBRSxDQVFYO0FBUkQsV0FBVSxFQUFFO0lBQ1IsSUFBVSxFQUFFLENBRVg7SUFGRCxXQUFVLEVBQUU7UUFDRyxJQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYO0lBRUQsU0FBZ0IsR0FBRztRQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRmUsTUFBRyxNQUVsQixDQUFBO0FBQ0wsQ0FBQyxFQVJTLEVBQUUsS0FBRixFQUFFLFFBUVgifQ==,bmFtZXNwYWNlIG0yIHsKICAgIHZhciBhID0gMTA7CiAgICBhKys7Cn0KbmFtZXNwYWNlIG0zIHsKICAgIG5hbWVzcGFjZSBtNCB7CiAgICAgICAgZXhwb3J0IHZhciB4ID0gMzA7CiAgICB9CgogICAgZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICByZXR1cm4gbTQueDsKICAgIH0KfQ==
-+{"version":3,"file":"sourceMapValidationModule.js","sourceRoot":"","sources":["sourceMapValidationModule.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAGX;AAHD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,EAAE,CAAC;AACR,CAAC,EAHS,EAAE,KAAF,EAAE,QAGX;AACD,IAAU,EAAE,CAQX;AARD,WAAU,EAAE;IACR,IAAU,EAAE,CAEX;IAFD,WAAU,EAAE;QACG,IAAC,GAAG,EAAE,CAAC;IACtB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX;IAED,SAAgB,GAAG;QACf,OAAO,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAFe,GAAA,GAAG,MAElB,CAAA;AACL,CAAC,EARS,EAAE,KAAF,EAAE,QAQX"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0yOw0KKGZ1bmN0aW9uIChtMikgew0KICAgIHZhciBhID0gMTA7DQogICAgYSsrOw0KfSkobTIgfHwgKG0yID0ge30pKTsNCnZhciBtMzsNCihmdW5jdGlvbiAobTMpIHsNCiAgICBsZXQgbTQ7DQogICAgKGZ1bmN0aW9uIChtNCkgew0KICAgICAgICBtNC54ID0gMzA7DQogICAgfSkobTQgfHwgKG00ID0ge30pKTsNCiAgICBmdW5jdGlvbiBmb28oKSB7DQogICAgICAgIHJldHVybiBtNC54Ow0KICAgIH0NCiAgICBtMy5mb28gPSBmb287DQp9KShtMyB8fCAobTMgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbk1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZU1hcFZhbGlkYXRpb25Nb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVUsRUFBRSxDQUdYO0FBSEQsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1gsQ0FBQyxFQUFFLENBQUM7QUFDUixDQUFDLEVBSFMsRUFBRSxLQUFGLEVBQUUsUUFHWDtBQUNELElBQVUsRUFBRSxDQVFYO0FBUkQsV0FBVSxFQUFFO0lBQ1IsSUFBVSxFQUFFLENBRVg7SUFGRCxXQUFVLEVBQUU7UUFDRyxJQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYO0lBRUQsU0FBZ0IsR0FBRztRQUNmLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRmUsR0FBQSxHQUFHLE1BRWxCLENBQUE7QUFDTCxDQUFDLEVBUlMsRUFBRSxLQUFGLEVBQUUsUUFRWCJ9,bmFtZXNwYWNlIG0yIHsKICAgIHZhciBhID0gMTA7CiAgICBhKys7Cn0KbmFtZXNwYWNlIG0zIHsKICAgIG5hbWVzcGFjZSBtNCB7CiAgICAgICAgZXhwb3J0IHZhciB4ID0gMzA7CiAgICB9CgogICAgZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICByZXR1cm4gbTQueDsKICAgIH0KfQ==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt
index a3c352cf457..6f0a18e2d2f 100644
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt
@@ -260,23 +260,20 @@ sourceFile:sourceMapValidationModule.ts
---
>>> m3.foo = foo;
1->^^^^
-2 > ^^^
-3 > ^^^
-4 > ^^^^^^
-5 > ^
-6 > ^^^^->
+2 > ^^^^^^
+3 > ^^^^^^
+4 > ^
+5 > ^^^^->
1->
-2 >
-3 > foo
-4 > () {
+2 > foo
+3 > () {
> return m4.x;
> }
-5 >
+4 >
1->Emitted(16, 5) Source(10, 21) + SourceIndex(0)
-2 >Emitted(16, 8) Source(10, 21) + SourceIndex(0)
-3 >Emitted(16, 11) Source(10, 24) + SourceIndex(0)
-4 >Emitted(16, 17) Source(12, 6) + SourceIndex(0)
-5 >Emitted(16, 18) Source(12, 6) + SourceIndex(0)
+2 >Emitted(16, 11) Source(10, 24) + SourceIndex(0)
+3 >Emitted(16, 17) Source(12, 6) + SourceIndex(0)
+4 >Emitted(16, 18) Source(12, 6) + SourceIndex(0)
---
>>>})(m3 || (m3 = {}));
1->
diff --git a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt.diff
deleted file mode 100644
index 84d2c640035..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourceMapValidationModule.sourcemap.txt.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- old.sourceMapValidationModule.sourcemap.txt
-+++ new.sourceMapValidationModule.sourcemap.txt
-@@= skipped -259, +259 lines =@@
- ---
- >>> m3.foo = foo;
- 1->^^^^
--2 > ^^^^^^
--3 > ^^^^^^
--4 > ^
--5 > ^^^^->
-+2 > ^^^
-+3 > ^^^
-+4 > ^^^^^^
-+5 > ^
-+6 > ^^^^->
- 1->
--2 > foo
--3 > () {
-+2 >
-+3 > foo
-+4 > () {
- > return m4.x;
- > }
--4 >
-+5 >
- 1->Emitted(16, 5) Source(10, 21) + SourceIndex(0)
--2 >Emitted(16, 11) Source(10, 24) + SourceIndex(0)
--3 >Emitted(16, 17) Source(12, 6) + SourceIndex(0)
--4 >Emitted(16, 18) Source(12, 6) + SourceIndex(0)
-+2 >Emitted(16, 8) Source(10, 21) + SourceIndex(0)
-+3 >Emitted(16, 11) Source(10, 24) + SourceIndex(0)
-+4 >Emitted(16, 17) Source(12, 6) + SourceIndex(0)
-+5 >Emitted(16, 18) Source(12, 6) + SourceIndex(0)
- ---
- >>>})(m3 || (m3 = {}));
- 1->
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map
index f9f834fbfaa..6d417b42609 100644
--- a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map
+++ b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map
@@ -1,3 +1,3 @@
//// [sourcemapValidationDuplicateNames.js.map]
-{"version":3,"file":"sourcemapValidationDuplicateNames.js","sourceRoot":"","sources":["sourcemapValidationDuplicateNames.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAIX;AAJD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,MAAa,CAAC;KACb;IADY,GAAA,CAAC,IACb,CAAA;AACL,CAAC,EAJS,EAAE,KAAF,EAAE,QAIX;AACD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACvB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0xOw0KKGZ1bmN0aW9uIChtMSkgew0KICAgIHZhciB4ID0gMTA7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0xLmMgPSBjOw0KfSkobTEgfHwgKG0xID0ge30pKTsNCihmdW5jdGlvbiAobTEpIHsNCiAgICB2YXIgYiA9IG5ldyBtMS5jKCk7DQp9KShtMSB8fCAobTEgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEVBQUUsQ0FJWDtBQUpELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQWEsQ0FBQztLQUNiO0lBRFksR0FBQSxDQUFDLElBQ2IsQ0FBQTtBQUNMLENBQUMsRUFKUyxFQUFFLEtBQUYsRUFBRSxRQUlYO0FBQ0QsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDdkIsQ0FBQyxFQUZTLEVBQUUsS0FBRixFQUFFLFFBRVgifQ==,bmFtZXNwYWNlIG0xIHsKICAgIHZhciB4ID0gMTA7CiAgICBleHBvcnQgY2xhc3MgYyB7CiAgICB9Cn0KbmFtZXNwYWNlIG0xIHsKICAgIHZhciBiID0gbmV3IG0xLmMoKTsKfQ==
+{"version":3,"file":"sourcemapValidationDuplicateNames.js","sourceRoot":"","sources":["sourcemapValidationDuplicateNames.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAIX;AAJD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,MAAa,CAAC;KACb;IADY,IAAC,IACb,CAAA;AACL,CAAC,EAJS,EAAE,KAAF,EAAE,QAIX;AACD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACvB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0xOw0KKGZ1bmN0aW9uIChtMSkgew0KICAgIHZhciB4ID0gMTA7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0xLmMgPSBjOw0KfSkobTEgfHwgKG0xID0ge30pKTsNCihmdW5jdGlvbiAobTEpIHsNCiAgICB2YXIgYiA9IG5ldyBtMS5jKCk7DQp9KShtMSB8fCAobTEgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEVBQUUsQ0FJWDtBQUpELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQWEsQ0FBQztLQUNiO0lBRFksSUFBQyxJQUNiLENBQUE7QUFDTCxDQUFDLEVBSlMsRUFBRSxLQUFGLEVBQUUsUUFJWDtBQUNELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYIn0=,bmFtZXNwYWNlIG0xIHsKICAgIHZhciB4ID0gMTA7CiAgICBleHBvcnQgY2xhc3MgYyB7CiAgICB9Cn0KbmFtZXNwYWNlIG0xIHsKICAgIHZhciBiID0gbmV3IG0xLmMoKTsKfQ==
diff --git a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map.diff b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map.diff
deleted file mode 100644
index 4f4abd95ca5..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.js.map.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.sourcemapValidationDuplicateNames.js.map
-+++ new.sourcemapValidationDuplicateNames.js.map
-@@= skipped -0, +0 lines =@@
- //// [sourcemapValidationDuplicateNames.js.map]
--{"version":3,"file":"sourcemapValidationDuplicateNames.js","sourceRoot":"","sources":["sourcemapValidationDuplicateNames.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAIX;AAJD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,MAAa,CAAC;KACb;IADY,IAAC,IACb,CAAA;AACL,CAAC,EAJS,EAAE,KAAF,EAAE,QAIX;AACD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACvB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX"}
--//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0xOw0KKGZ1bmN0aW9uIChtMSkgew0KICAgIHZhciB4ID0gMTA7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0xLmMgPSBjOw0KfSkobTEgfHwgKG0xID0ge30pKTsNCihmdW5jdGlvbiAobTEpIHsNCiAgICB2YXIgYiA9IG5ldyBtMS5jKCk7DQp9KShtMSB8fCAobTEgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEVBQUUsQ0FJWDtBQUpELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQWEsQ0FBQztLQUNiO0lBRFksSUFBQyxJQUNiLENBQUE7QUFDTCxDQUFDLEVBSlMsRUFBRSxLQUFGLEVBQUUsUUFJWDtBQUNELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZCLENBQUMsRUFGUyxFQUFFLEtBQUYsRUFBRSxRQUVYIn0=,bmFtZXNwYWNlIG0xIHsKICAgIHZhciB4ID0gMTA7CiAgICBleHBvcnQgY2xhc3MgYyB7CiAgICB9Cn0KbmFtZXNwYWNlIG0xIHsKICAgIHZhciBiID0gbmV3IG0xLmMoKTsKfQ==
-+{"version":3,"file":"sourcemapValidationDuplicateNames.js","sourceRoot":"","sources":["sourcemapValidationDuplicateNames.ts"],"names":[],"mappings":";AAAA,IAAU,EAAE,CAIX;AAJD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,MAAa,CAAC;KACb;IADY,GAAA,CAAC,IACb,CAAA;AACL,CAAC,EAJS,EAAE,KAAF,EAAE,QAIX;AACD,WAAU,EAAE;IACR,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACvB,CAAC,EAFS,EAAE,KAAF,EAAE,QAEX"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIG0xOw0KKGZ1bmN0aW9uIChtMSkgew0KICAgIHZhciB4ID0gMTA7DQogICAgY2xhc3MgYyB7DQogICAgfQ0KICAgIG0xLmMgPSBjOw0KfSkobTEgfHwgKG0xID0ge30pKTsNCihmdW5jdGlvbiAobTEpIHsNCiAgICB2YXIgYiA9IG5ldyBtMS5jKCk7DQp9KShtMSB8fCAobTEgPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlbWFwVmFsaWRhdGlvbkR1cGxpY2F0ZU5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFVLEVBQUUsQ0FJWDtBQUpELFdBQVUsRUFBRTtJQUNSLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQWEsQ0FBQztLQUNiO0lBRFksR0FBQSxDQUFDLElBQ2IsQ0FBQTtBQUNMLENBQUMsRUFKUyxFQUFFLEtBQUYsRUFBRSxRQUlYO0FBQ0QsV0FBVSxFQUFFO0lBQ1IsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDdkIsQ0FBQyxFQUZTLEVBQUUsS0FBRixFQUFFLFFBRVgifQ==,bmFtZXNwYWNlIG0xIHsKICAgIHZhciB4ID0gMTA7CiAgICBleHBvcnQgY2xhc3MgYyB7CiAgICB9Cn0KbmFtZXNwYWNlIG0xIHsKICAgIHZhciBiID0gbmV3IG0xLmMoKTsKfQ==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt
index 5c11f52b8a5..d556466d10f 100644
--- a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt
@@ -82,22 +82,19 @@ sourceFile:sourcemapValidationDuplicateNames.ts
---
>>> m1.c = c;
1->^^^^
-2 > ^^^
-3 > ^
-4 > ^^^^
-5 > ^
-6 > ^^^^^^^^->
+2 > ^^^^
+3 > ^^^^
+4 > ^
+5 > ^^^^^^^^->
1->
-2 >
-3 > c
-4 > {
+2 > c
+3 > {
> }
-5 >
+4 >
1->Emitted(7, 5) Source(3, 18) + SourceIndex(0)
-2 >Emitted(7, 8) Source(3, 18) + SourceIndex(0)
-3 >Emitted(7, 9) Source(3, 19) + SourceIndex(0)
-4 >Emitted(7, 13) Source(4, 6) + SourceIndex(0)
-5 >Emitted(7, 14) Source(4, 6) + SourceIndex(0)
+2 >Emitted(7, 9) Source(3, 19) + SourceIndex(0)
+3 >Emitted(7, 13) Source(4, 6) + SourceIndex(0)
+4 >Emitted(7, 14) Source(4, 6) + SourceIndex(0)
---
>>>})(m1 || (m1 = {}));
1->
diff --git a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt.diff
deleted file mode 100644
index d91f7e819ab..00000000000
--- a/testdata/baselines/reference/submodule/compiler/sourcemapValidationDuplicateNames.sourcemap.txt.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- old.sourcemapValidationDuplicateNames.sourcemap.txt
-+++ new.sourcemapValidationDuplicateNames.sourcemap.txt
-@@= skipped -81, +81 lines =@@
- ---
- >>> m1.c = c;
- 1->^^^^
--2 > ^^^^
--3 > ^^^^
--4 > ^
--5 > ^^^^^^^^->
-+2 > ^^^
-+3 > ^
-+4 > ^^^^
-+5 > ^
-+6 > ^^^^^^^^->
- 1->
--2 > c
--3 > {
-+2 >
-+3 > c
-+4 > {
- > }
--4 >
-+5 >
- 1->Emitted(7, 5) Source(3, 18) + SourceIndex(0)
--2 >Emitted(7, 9) Source(3, 19) + SourceIndex(0)
--3 >Emitted(7, 13) Source(4, 6) + SourceIndex(0)
--4 >Emitted(7, 14) Source(4, 6) + SourceIndex(0)
-+2 >Emitted(7, 8) Source(3, 18) + SourceIndex(0)
-+3 >Emitted(7, 9) Source(3, 19) + SourceIndex(0)
-+4 >Emitted(7, 13) Source(4, 6) + SourceIndex(0)
-+5 >Emitted(7, 14) Source(4, 6) + SourceIndex(0)
- ---
- >>>})(m1 || (m1 = {}));
- 1->
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map
index 807d241a22a..1564b615db3 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map
@@ -3,5 +3,5 @@
//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRHZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRHZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpOw0KICAgIHJldHVybiBraW5kID09PSAibSIgPyBmIDoga2luZCA9PT0gImEiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZFNldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZFNldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gIm0iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIChraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4gPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRJbikgfHwgZnVuY3Rpb24oc3RhdGUsIHJlY2VpdmVyKSB7DQogICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09ICJvYmplY3QiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gImZ1bmN0aW9uIikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7DQogICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0LCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZTsNCiAgICBsZXQgX2NsYXNzRGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgbGV0IF9jbGFzc0Rlc2NyaXB0b3I7DQogICAgbGV0IF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9jbGFzc1RoaXM7DQogICAgbGV0IF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvcjsNCiAgICBsZXQgX21ldGhvZF9kZWNvcmF0b3JzOw0KICAgIGxldCBfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3NldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICB2YXIgQyA9IF9jbGFzc1RoaXMgPSBjbGFzcyB7DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Nfel8xX2FjY2Vzc29yX3N0b3JhZ2UsICJmIik7IH0NCiAgICAgICAgc2V0IHoodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZSwgdmFsdWUsICJmIik7IH0NCiAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICB0aGlzLnkgPSAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9pbml0aWFsaXplcnMsIDEpKTsNCiAgICAgICAgICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlLnNldCh0aGlzLCAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfZXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9pbml0aWFsaXplcnMsIDEpKSk7DQogICAgICAgICAgICBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIH0NCiAgICB9Ow0KICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gbmV3IFdlYWtNYXAoKTsNCiAgICBfQ19tZXRob2RfZ2V0ID0gZnVuY3Rpb24gX0NfbWV0aG9kX2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvci52YWx1ZTsgfTsNCiAgICBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH07DQogICAgX0NfeF9zZXQgPSBmdW5jdGlvbiBfQ194X3NldCh2YWx1ZSkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9DX3pfZ2V0ID0gZnVuY3Rpb24gX0Nfel9nZXQoKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9Ow0KICAgIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9fc2V0RnVuY3Rpb25OYW1lKF9jbGFzc1RoaXMsICJDIik7DQogICAgKCgpID0+IHsNCiAgICAgICAgY29uc3QgX21ldGFkYXRhID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wubWV0YWRhdGEgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogdm9pZCAwOw0KICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yID0geyB2YWx1ZTogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyB9LCAiI21ldGhvZCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycywgeyBraW5kOiAibWV0aG9kIiwgbmFtZTogIiNtZXRob2QiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfbWV0aG9kX2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgIiN4IiwgImdldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJnZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfeF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsICJmIiwgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlKTsgfSwgIiN6IiwgImdldCIpLCBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsIHZhbHVlLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJzZXQiKSB9LCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICIjeiIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ196X2dldCksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChvYmosIF9jbGFzc1RoaXMsIHZhbHVlLCAiYSIsIF9DX3pfc2V0KTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX21ldGhvZF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJtZXRob2QiLCBuYW1lOiAibWV0aG9kIiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAibWV0aG9kIiBpbiBvYmosIGdldDogb2JqID0+IG9iai5tZXRob2QgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICJ4Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieCIgaW4gb2JqLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai54ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICJ6Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieiIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueiA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3pfaW5pdGlhbGl6ZXJzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIG51bGwsIF95X2RlY29yYXRvcnMsIHsga2luZDogImZpZWxkIiwgbmFtZTogInkiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ5IiBpbiBvYmosIGdldDogb2JqID0+IG9iai55LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai55ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfeV9pbml0aWFsaXplcnMsIF95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIF9jbGFzc0Rlc2NyaXB0b3IgPSB7IHZhbHVlOiBfY2xhc3NUaGlzIH0sIF9jbGFzc0RlY29yYXRvcnMsIHsga2luZDogImNsYXNzIiwgbmFtZTogX2NsYXNzVGhpcy5uYW1lLCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICBpZiAoX21ldGFkYXRhKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2NsYXNzVGhpcywgU3ltYm9sLm1ldGFkYXRhLCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBfbWV0YWRhdGEgfSk7DQogICAgfSkoKTsNCiAgICBfQ195ID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycywgMSkpIH07DQogICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAoKCkgPT4gew0KICAgICAgICBfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICB9KSgpOw0KICAgIHJldHVybiBDID0gX2NsYXNzVGhpczsNCn0pKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1lc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUlNLENBQUM7OzRCQUZOLEdBQUcsRUFDSCxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQUlBLE1BQU0sS0FBSSxDQUFDO1FBSVgsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSXJCLElBQUksQ0FBQyxDQUFDLEtBQWEsSUFBSSxDQUFDO1FBUXhCLElBQVMsQ0FBQyx5RUFBSztRQUFmLElBQVMsQ0FBQyw4RUFBSzs7WUFKZixNQUFDLElBZkMsbURBQUMsMkNBZUMsQ0FBQyxHQUFDO1lBSUcsMkhBQUksQ0FBQyxJQUFDOzs7Ozs7Ozs7Ozs7OzhCQWxCZCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRzt5QkFHSCxHQUFHLEVBQ0gsR0FBRzt5QkFHSCxHQUFHLEVBQ0gsR0FBRzs2Q0FHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRzt3Q0FHSCxHQUFHLEVBQ0gsR0FBRzt3Q0FHSCxHQUFHLEVBQ0gsR0FBRztRQWZKLCtEQUFBLHlCQUFBLGNBQWtCLENBQUMsWUFBQSx1U0FBQTtRQUluQiw4REFBQSx1QkFBQSxjQUFrQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBQSw0UkFBQTtRQUk3Qiw4REFBQSx1QkFBQSxVQUFjLEtBQWEsSUFBSSxDQUFDLGNBQUEsaVRBQUE7UUFRaEMsMERBQUEsdUJBQUEsa0dBQXVCLGNBQUEsRUFBdkIsdUJBQUEsdUdBQXVCLGNBQUEsd1pBQUE7UUFwQ3ZCLDJLQUFBLE1BQU0sNkRBQUs7UUFJWCxnS0FBSSxDQUFDLDZEQUFnQjtRQUlyQiwyS0FBSSxDQUFDLHdFQUFtQjtRQVF4Qiw4SkFBUyxDQUFDLDZCQUFELENBQUMsNkVBQUs7UUFnQmYsa2FBQWM7UUFwQmQscUpBQUEsQ0FBQyw2QkFBRCxDQUFDLDZFQUFLO1FBZlYsNktBd0NDOzs7O0lBTFUsaUJBbkNMLHVEQUFDLGdFQW1DUyxDQUFDLElBQUosQ0FBSztJQUlFLG9LQUFLLENBQUMsSUFBSixDQUFLOzs7UUF2Q3JCLHVEQUFDIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
//// [esDecorators-classDeclaration-sourceMap.d.ts.map]
-{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map.diff
deleted file mode 100644
index d4b37453982..00000000000
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).js.map.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.esDecorators-classDeclaration-sourceMap(target=es2015).js.map
-+++ new.esDecorators-classDeclaration-sourceMap(target=es2015).js.map
-@@= skipped -2, +2 lines =@@
- //// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRHZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRHZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpOw0KICAgIHJldHVybiBraW5kID09PSAibSIgPyBmIDoga2luZCA9PT0gImEiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZFNldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZFNldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gIm0iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIChraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4gPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRJbikgfHwgZnVuY3Rpb24oc3RhdGUsIHJlY2VpdmVyKSB7DQogICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09ICJvYmplY3QiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gImZ1bmN0aW9uIikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7DQogICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0LCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZTsNCiAgICBsZXQgX2NsYXNzRGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgbGV0IF9jbGFzc0Rlc2NyaXB0b3I7DQogICAgbGV0IF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9jbGFzc1RoaXM7DQogICAgbGV0IF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvcjsNCiAgICBsZXQgX21ldGhvZF9kZWNvcmF0b3JzOw0KICAgIGxldCBfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3NldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICB2YXIgQyA9IF9jbGFzc1RoaXMgPSBjbGFzcyB7DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Nfel8xX2FjY2Vzc29yX3N0b3JhZ2UsICJmIik7IH0NCiAgICAgICAgc2V0IHoodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZSwgdmFsdWUsICJmIik7IH0NCiAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICB0aGlzLnkgPSAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9pbml0aWFsaXplcnMsIDEpKTsNCiAgICAgICAgICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlLnNldCh0aGlzLCAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfZXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9pbml0aWFsaXplcnMsIDEpKSk7DQogICAgICAgICAgICBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIH0NCiAgICB9Ow0KICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gbmV3IFdlYWtNYXAoKTsNCiAgICBfQ19tZXRob2RfZ2V0ID0gZnVuY3Rpb24gX0NfbWV0aG9kX2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvci52YWx1ZTsgfTsNCiAgICBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH07DQogICAgX0NfeF9zZXQgPSBmdW5jdGlvbiBfQ194X3NldCh2YWx1ZSkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9DX3pfZ2V0ID0gZnVuY3Rpb24gX0Nfel9nZXQoKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9Ow0KICAgIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9fc2V0RnVuY3Rpb25OYW1lKF9jbGFzc1RoaXMsICJDIik7DQogICAgKCgpID0+IHsNCiAgICAgICAgY29uc3QgX21ldGFkYXRhID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wubWV0YWRhdGEgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogdm9pZCAwOw0KICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yID0geyB2YWx1ZTogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyB9LCAiI21ldGhvZCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycywgeyBraW5kOiAibWV0aG9kIiwgbmFtZTogIiNtZXRob2QiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfbWV0aG9kX2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgIiN4IiwgImdldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJnZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfeF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsICJmIiwgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlKTsgfSwgIiN6IiwgImdldCIpLCBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsIHZhbHVlLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJzZXQiKSB9LCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICIjeiIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ196X2dldCksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChvYmosIF9jbGFzc1RoaXMsIHZhbHVlLCAiYSIsIF9DX3pfc2V0KTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX21ldGhvZF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJtZXRob2QiLCBuYW1lOiAibWV0aG9kIiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAibWV0aG9kIiBpbiBvYmosIGdldDogb2JqID0+IG9iai5tZXRob2QgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICJ4Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieCIgaW4gb2JqLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai54ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICJ6Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieiIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueiA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3pfaW5pdGlhbGl6ZXJzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIG51bGwsIF95X2RlY29yYXRvcnMsIHsga2luZDogImZpZWxkIiwgbmFtZTogInkiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ5IiBpbiBvYmosIGdldDogb2JqID0+IG9iai55LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai55ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfeV9pbml0aWFsaXplcnMsIF95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIF9jbGFzc0Rlc2NyaXB0b3IgPSB7IHZhbHVlOiBfY2xhc3NUaGlzIH0sIF9jbGFzc0RlY29yYXRvcnMsIHsga2luZDogImNsYXNzIiwgbmFtZTogX2NsYXNzVGhpcy5uYW1lLCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICBpZiAoX21ldGFkYXRhKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2NsYXNzVGhpcywgU3ltYm9sLm1ldGFkYXRhLCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBfbWV0YWRhdGEgfSk7DQogICAgfSkoKTsNCiAgICBfQ195ID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycywgMSkpIH07DQogICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAoKCkgPT4gew0KICAgICAgICBfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICB9KSgpOw0KICAgIHJldHVybiBDID0gX2NsYXNzVGhpczsNCn0pKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1lc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUlNLENBQUM7OzRCQUZOLEdBQUcsRUFDSCxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQUlBLE1BQU0sS0FBSSxDQUFDO1FBSVgsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSXJCLElBQUksQ0FBQyxDQUFDLEtBQWEsSUFBSSxDQUFDO1FBUXhCLElBQVMsQ0FBQyx5RUFBSztRQUFmLElBQVMsQ0FBQyw4RUFBSzs7WUFKZixNQUFDLElBZkMsbURBQUMsMkNBZUMsQ0FBQyxHQUFDO1lBSUcsMkhBQUksQ0FBQyxJQUFDOzs7Ozs7Ozs7Ozs7OzhCQWxCZCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRzt5QkFHSCxHQUFHLEVBQ0gsR0FBRzt5QkFHSCxHQUFHLEVBQ0gsR0FBRzs2Q0FHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRzt3Q0FHSCxHQUFHLEVBQ0gsR0FBRzt3Q0FHSCxHQUFHLEVBQ0gsR0FBRztRQWZKLCtEQUFBLHlCQUFBLGNBQWtCLENBQUMsWUFBQSx1U0FBQTtRQUluQiw4REFBQSx1QkFBQSxjQUFrQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBQSw0UkFBQTtRQUk3Qiw4REFBQSx1QkFBQSxVQUFjLEtBQWEsSUFBSSxDQUFDLGNBQUEsaVRBQUE7UUFRaEMsMERBQUEsdUJBQUEsa0dBQXVCLGNBQUEsRUFBdkIsdUJBQUEsdUdBQXVCLGNBQUEsd1pBQUE7UUFwQ3ZCLDJLQUFBLE1BQU0sNkRBQUs7UUFJWCxnS0FBSSxDQUFDLDZEQUFnQjtRQUlyQiwyS0FBSSxDQUFDLHdFQUFtQjtRQVF4Qiw4SkFBUyxDQUFDLDZCQUFELENBQUMsNkVBQUs7UUFnQmYsa2FBQWM7UUFwQmQscUpBQUEsQ0FBQyw2QkFBRCxDQUFDLDZFQUFLO1FBZlYsNktBd0NDOzs7O0lBTFUsaUJBbkNMLHVEQUFDLGdFQW1DUyxDQUFDLElBQUosQ0FBSztJQUlFLG9LQUFLLENBQUMsSUFBSixDQUFLOzs7UUF2Q3JCLHVEQUFDIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
-
- //// [esDecorators-classDeclaration-sourceMap.d.ts.map]
--{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
--//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
-+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt
index 1dc711f765d..9a3f02db451 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt
@@ -952,17 +952,14 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
>>> method(): void;
1 >^^^^
2 > ^^^^^^
-3 > ^^^^^^^^^
-4 > ^^->
+3 > ^^^^^^^^^^^->
1 > {
> @dec
> @dec
>
2 > method
-3 > () {}
1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
---
>>> get x(): number;
1->^^^^
@@ -972,7 +969,7 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
5 > ^^^^^^
6 > ^
7 > ^^^^^^->
-1->
+1->() {}
>
>
2 > @dec
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt.diff
deleted file mode 100644
index d799ebadcbb..00000000000
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt
-+++ new.esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt
-@@= skipped -951, +951 lines =@@
- >>> method(): void;
- 1 >^^^^
- 2 > ^^^^^^
--3 > ^^^^^^^^^^^->
-+3 > ^^^^^^^^^
-+4 > ^^->
- 1 > {
- > @dec
- > @dec
- >
- 2 > method
-+3 > () {}
- 1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
- 2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-+3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
- ---
- >>> get x(): number;
- 1->^^^^
-@@= skipped -17, +20 lines =@@
- 5 > ^^^^^^
- 6 > ^
- 7 > ^^^^^^->
--1->() {}
-+1->
- >
- >
- 2 > @dec
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map
index dbf10f963d3..6e9326ed290 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map
@@ -3,5 +3,5 @@
//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRJbiA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEluKSB8fCBmdW5jdGlvbihzdGF0ZSwgcmVjZWl2ZXIpIHsNCiAgICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gIm9iamVjdCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSAiZnVuY3Rpb24iKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3QiKTsNCiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIGtpbmQgPT09ICJtIiA/IGYgOiBraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAibSIpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZSIpOw0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTsNCiAgICByZXR1cm4gKGtpbmQgPT09ICJhIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0Ow0KICAgIGxldCBfY2xhc3NEZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICBsZXQgX2NsYXNzRGVzY3JpcHRvcjsNCiAgICBsZXQgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX2NsYXNzVGhpczsNCiAgICBsZXQgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yOw0KICAgIGxldCBfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9nZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF96X2RlY29yYXRvcnM7DQogICAgbGV0IF96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIHZhciBDID0gY2xhc3Mgew0KICAgICAgICBzdGF0aWMgeyBfY2xhc3NUaGlzID0gdGhpczsgfQ0KICAgICAgICBzdGF0aWMgeyBfX3NldEZ1bmN0aW9uTmFtZSh0aGlzLCAiQyIpOyB9DQogICAgICAgIHN0YXRpYyB7IF9DX21ldGhvZF9nZXQgPSBmdW5jdGlvbiBfQ19tZXRob2RfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yLnZhbHVlOyB9LCBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3hfc2V0ID0gZnVuY3Rpb24gX0NfeF9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfSwgX0Nfel9nZXQgPSBmdW5jdGlvbiBfQ196X2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9OyB9DQogICAgICAgIHN0YXRpYyB7DQogICAgICAgICAgICBjb25zdCBfbWV0YWRhdGEgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5tZXRhZGF0YSA/IE9iamVjdC5jcmVhdGUobnVsbCkgOiB2b2lkIDA7DQogICAgICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3NldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvciA9IHsgdmFsdWU6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgfSwgIiNtZXRob2QiKSB9LCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICIjbWV0aG9kIiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX21ldGhvZF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9LCAiI3giLCAiZ2V0IikgfSwgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnMsIHsga2luZDogImdldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ194X2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfY2xhc3NUaGlzLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJnZXQiKSwgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImYiLCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UpOyB9LCAiI3oiLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3pfZGVjb3JhdG9ycywgeyBraW5kOiAiYWNjZXNzb3IiLCBuYW1lOiAiI3oiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0Nfel9nZXQpLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ196X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICJtZXRob2QiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJtZXRob2QiIGluIG9iaiwgZ2V0OiBvYmogPT4gb2JqLm1ldGhvZCB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAieCIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gIngiIGluIG9iaiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueCA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF96X2RlY29yYXRvcnMsIHsga2luZDogImFjY2Vzc29yIiwgbmFtZTogInoiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ6IiBpbiBvYmosIGdldDogb2JqID0+IG9iai56LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai56ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfel9pbml0aWFsaXplcnMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICJ5Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieSIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueSA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3lfaW5pdGlhbGl6ZXJzLCBfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgX2NsYXNzRGVzY3JpcHRvciA9IHsgdmFsdWU6IF9jbGFzc1RoaXMgfSwgX2NsYXNzRGVjb3JhdG9ycywgeyBraW5kOiAiY2xhc3MiLCBuYW1lOiBfY2xhc3NUaGlzLm5hbWUsIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICAgICAgaWYgKF9tZXRhZGF0YSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9jbGFzc1RoaXMsIFN5bWJvbC5tZXRhZGF0YSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogX21ldGFkYXRhIH0pOw0KICAgICAgICB9DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICB5ID0gKF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfaW5pdGlhbGl6ZXJzLCAxKSk7DQogICAgICAgICN6XzFfYWNjZXNzb3Jfc3RvcmFnZSA9IChfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9leHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2luaXRpYWxpemVycywgMSkpOw0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlOyB9DQogICAgICAgIHNldCB6KHZhbHVlKSB7IHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gdmFsdWU7IH0NCiAgICAgICAgc3RhdGljIHsNCiAgICAgICAgICAgIF9DX3kgPSB7IHZhbHVlOiAoX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gQyA9IF9jbGFzc1RoaXM7DQp9KSgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUlNLENBQUM7OzRCQUZOLEdBQUcsRUFDSCxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUVDLEdBQUcsRUFDSCxHQUFHO2lDQUdILEdBQUcsRUFDSCxHQUFHO2lDQUdILEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHO2lEQUdILEdBQUcsRUFDSCxHQUFHO2dEQUdILEdBQUcsRUFDSCxHQUFHO2dEQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHO1lBZkoseURBQUEseUJBQUEsY0FBa0IsQ0FBQyxZQUFBLHVTQUFBO1lBSW5CLHdEQUFBLHVCQUFBLGNBQWtCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFBLDRSQUFBO1lBSTdCLHdEQUFBLHVCQUFBLFVBQWMsS0FBYSxJQUFJLENBQUMsY0FBQSxpVEFBQTtZQVFoQyxvREFBQSx1QkFBQSw0RkFBdUIsY0FBQSxFQUF2Qix1QkFBQSxpR0FBdUIsY0FBQSx3WkFBQTtZQXBDdkIscUtBQUEsTUFBTSw2REFBSztZQUlYLDBKQUFJLENBQUMsNkRBQWdCO1lBSXJCLHFLQUFJLENBQUMsd0VBQW1CO1lBUXhCLHdKQUFTLENBQUMsNkJBQUQsQ0FBQyw2RUFBSztZQWdCZixrYUFBYztZQXBCZCxxSkFBQSxDQUFDLDZCQUFELENBQUMsNkVBQUs7WUFmViw2S0F3Q0M7Ozs7UUFyQ0csTUFBTSxLQUFJLENBQUM7UUFJWCxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFJckIsSUFBSSxDQUFDLENBQUMsS0FBYSxJQUFJLENBQUM7UUFJeEIsQ0FBQyxJQWZDLG1EQUFDLDJDQWVDLENBQUMsR0FBQztRQUlOLGlIQUFhLENBQUMsR0FBQztRQUFmLElBQVMsQ0FBQyx5Q0FBSztRQUFmLElBQVMsQ0FBQywrQ0FBSzs7WUFnQlIsaUJBbkNMLHVEQUFDLGdFQW1DUyxDQUFDLElBQUosQ0FBSzs7O1lBSUUsb0tBQUssQ0FBQyxJQUFKLENBQUs7Ozs7Ozs7WUF2Q3JCLHVEQUFDIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
//// [esDecorators-classDeclaration-sourceMap.d.ts.map]
-{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map.diff
deleted file mode 100644
index a24cf9b5f70..00000000000
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).js.map.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.esDecorators-classDeclaration-sourceMap(target=es2022).js.map
-+++ new.esDecorators-classDeclaration-sourceMap(target=es2022).js.map
-@@= skipped -2, +2 lines =@@
- //// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRJbiA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEluKSB8fCBmdW5jdGlvbihzdGF0ZSwgcmVjZWl2ZXIpIHsNCiAgICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gIm9iamVjdCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSAiZnVuY3Rpb24iKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3QiKTsNCiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIGtpbmQgPT09ICJtIiA/IGYgOiBraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAibSIpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZSIpOw0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTsNCiAgICByZXR1cm4gKGtpbmQgPT09ICJhIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0Ow0KICAgIGxldCBfY2xhc3NEZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICBsZXQgX2NsYXNzRGVzY3JpcHRvcjsNCiAgICBsZXQgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX2NsYXNzVGhpczsNCiAgICBsZXQgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yOw0KICAgIGxldCBfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9nZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF96X2RlY29yYXRvcnM7DQogICAgbGV0IF96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIHZhciBDID0gY2xhc3Mgew0KICAgICAgICBzdGF0aWMgeyBfY2xhc3NUaGlzID0gdGhpczsgfQ0KICAgICAgICBzdGF0aWMgeyBfX3NldEZ1bmN0aW9uTmFtZSh0aGlzLCAiQyIpOyB9DQogICAgICAgIHN0YXRpYyB7IF9DX21ldGhvZF9nZXQgPSBmdW5jdGlvbiBfQ19tZXRob2RfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yLnZhbHVlOyB9LCBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3hfc2V0ID0gZnVuY3Rpb24gX0NfeF9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfSwgX0Nfel9nZXQgPSBmdW5jdGlvbiBfQ196X2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9OyB9DQogICAgICAgIHN0YXRpYyB7DQogICAgICAgICAgICBjb25zdCBfbWV0YWRhdGEgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5tZXRhZGF0YSA/IE9iamVjdC5jcmVhdGUobnVsbCkgOiB2b2lkIDA7DQogICAgICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3NldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvciA9IHsgdmFsdWU6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgfSwgIiNtZXRob2QiKSB9LCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICIjbWV0aG9kIiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX21ldGhvZF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9LCAiI3giLCAiZ2V0IikgfSwgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnMsIHsga2luZDogImdldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ194X2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfY2xhc3NUaGlzLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJnZXQiKSwgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImYiLCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UpOyB9LCAiI3oiLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3pfZGVjb3JhdG9ycywgeyBraW5kOiAiYWNjZXNzb3IiLCBuYW1lOiAiI3oiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0Nfel9nZXQpLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ196X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICJtZXRob2QiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJtZXRob2QiIGluIG9iaiwgZ2V0OiBvYmogPT4gb2JqLm1ldGhvZCB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAieCIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gIngiIGluIG9iaiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueCA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF96X2RlY29yYXRvcnMsIHsga2luZDogImFjY2Vzc29yIiwgbmFtZTogInoiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ6IiBpbiBvYmosIGdldDogb2JqID0+IG9iai56LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai56ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfel9pbml0aWFsaXplcnMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICJ5Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieSIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueSA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3lfaW5pdGlhbGl6ZXJzLCBfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgX2NsYXNzRGVzY3JpcHRvciA9IHsgdmFsdWU6IF9jbGFzc1RoaXMgfSwgX2NsYXNzRGVjb3JhdG9ycywgeyBraW5kOiAiY2xhc3MiLCBuYW1lOiBfY2xhc3NUaGlzLm5hbWUsIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICAgICAgaWYgKF9tZXRhZGF0YSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9jbGFzc1RoaXMsIFN5bWJvbC5tZXRhZGF0YSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogX21ldGFkYXRhIH0pOw0KICAgICAgICB9DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICB5ID0gKF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfaW5pdGlhbGl6ZXJzLCAxKSk7DQogICAgICAgICN6XzFfYWNjZXNzb3Jfc3RvcmFnZSA9IChfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9leHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2luaXRpYWxpemVycywgMSkpOw0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlOyB9DQogICAgICAgIHNldCB6KHZhbHVlKSB7IHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gdmFsdWU7IH0NCiAgICAgICAgc3RhdGljIHsNCiAgICAgICAgICAgIF9DX3kgPSB7IHZhbHVlOiAoX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gQyA9IF9jbGFzc1RoaXM7DQp9KSgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUlNLENBQUM7OzRCQUZOLEdBQUcsRUFDSCxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUVDLEdBQUcsRUFDSCxHQUFHO2lDQUdILEdBQUcsRUFDSCxHQUFHO2lDQUdILEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHO2lEQUdILEdBQUcsRUFDSCxHQUFHO2dEQUdILEdBQUcsRUFDSCxHQUFHO2dEQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHO1lBZkoseURBQUEseUJBQUEsY0FBa0IsQ0FBQyxZQUFBLHVTQUFBO1lBSW5CLHdEQUFBLHVCQUFBLGNBQWtCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFBLDRSQUFBO1lBSTdCLHdEQUFBLHVCQUFBLFVBQWMsS0FBYSxJQUFJLENBQUMsY0FBQSxpVEFBQTtZQVFoQyxvREFBQSx1QkFBQSw0RkFBdUIsY0FBQSxFQUF2Qix1QkFBQSxpR0FBdUIsY0FBQSx3WkFBQTtZQXBDdkIscUtBQUEsTUFBTSw2REFBSztZQUlYLDBKQUFJLENBQUMsNkRBQWdCO1lBSXJCLHFLQUFJLENBQUMsd0VBQW1CO1lBUXhCLHdKQUFTLENBQUMsNkJBQUQsQ0FBQyw2RUFBSztZQWdCZixrYUFBYztZQXBCZCxxSkFBQSxDQUFDLDZCQUFELENBQUMsNkVBQUs7WUFmViw2S0F3Q0M7Ozs7UUFyQ0csTUFBTSxLQUFJLENBQUM7UUFJWCxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFJckIsSUFBSSxDQUFDLENBQUMsS0FBYSxJQUFJLENBQUM7UUFJeEIsQ0FBQyxJQWZDLG1EQUFDLDJDQWVDLENBQUMsR0FBQztRQUlOLGlIQUFhLENBQUMsR0FBQztRQUFmLElBQVMsQ0FBQyx5Q0FBSztRQUFmLElBQVMsQ0FBQywrQ0FBSzs7WUFnQlIsaUJBbkNMLHVEQUFDLGdFQW1DUyxDQUFDLElBQUosQ0FBSzs7O1lBSUUsb0tBQUssQ0FBQyxJQUFKLENBQUs7Ozs7Ozs7WUF2Q3JCLHVEQUFDIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
-
- //// [esDecorators-classDeclaration-sourceMap.d.ts.map]
--{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
--//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
-+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt
index 933f361965b..c24ebb7ae9a 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt
@@ -961,17 +961,14 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
>>> method(): void;
1 >^^^^
2 > ^^^^^^
-3 > ^^^^^^^^^
-4 > ^^->
+3 > ^^^^^^^^^^^->
1 > {
> @dec
> @dec
>
2 > method
-3 > () {}
1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
---
>>> get x(): number;
1->^^^^
@@ -981,7 +978,7 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
5 > ^^^^^^
6 > ^
7 > ^^^^^^->
-1->
+1->() {}
>
>
2 > @dec
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt.diff
deleted file mode 100644
index 958141451c6..00000000000
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt
-+++ new.esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt
-@@= skipped -960, +960 lines =@@
- >>> method(): void;
- 1 >^^^^
- 2 > ^^^^^^
--3 > ^^^^^^^^^^^->
-+3 > ^^^^^^^^^
-+4 > ^^->
- 1 > {
- > @dec
- > @dec
- >
- 2 > method
-+3 > () {}
- 1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
- 2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-+3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
- ---
- >>> get x(): number;
- 1->^^^^
-@@= skipped -17, +20 lines =@@
- 5 > ^^^^^^
- 6 > ^
- 7 > ^^^^^^->
--1->() {}
-+1->
- >
- >
- 2 > @dec
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map
index 1b0f9893a34..b4c8c0bd87f 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map
@@ -3,5 +3,5 @@
//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KQGRlYw0KQGRlYw0KY2xhc3MgQyB7DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBtZXRob2QoKSB7IH0NCiAgICBAZGVjDQogICAgQGRlYw0KICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgeSA9IDE7DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBhY2Nlc3NvciB6ID0gMTsNCiAgICBAZGVjDQogICAgQGRlYw0KICAgIHN0YXRpYyAjbWV0aG9kKCkgeyB9DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc3RhdGljIHNldCAjeCh2YWx1ZSkgeyB9DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBzdGF0aWMgI3kgPSAxOw0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc3RhdGljIGFjY2Vzc29yICN6ID0gMTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVzRGVjb3JhdG9ycy1jbGFzc0RlY2xhcmF0aW9uLXNvdXJjZU1hcC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxDQUFDLEdBQUc7QUFDSixDQUFDLEdBQUc7TUFDRSxDQUFDO0lBQ0gsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFJLENBQUM7SUFFWCxDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7UUFDQSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJCLENBQUMsR0FBRztJQUNKLENBQUMsR0FBRztRQUNBLENBQUMsQ0FBQyxLQUFhLElBQUksQ0FBQztJQUV4QixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRU4sQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFZixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixNQUFNLENBQUMsT0FBTyxLQUFJLENBQUM7SUFFbkIsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0IsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFLLEVBQUUsQ0FBQyxLQUFhLElBQUksQ0FBQztJQUVoQyxDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVkLENBQUMsR0FBRztJQUNKLENBQUMsR0FBRztJQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztDQUMxQiJ9,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
//// [esDecorators-classDeclaration-sourceMap.d.ts.map]
-{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map.diff
index 54fa4dc087d..465c5be9889 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map.diff
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).js.map.diff
@@ -8,7 +8,4 @@
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KQGRlYw0KQGRlYw0KY2xhc3MgQyB7DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBtZXRob2QoKSB7IH0NCiAgICBAZGVjDQogICAgQGRlYw0KICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgeSA9IDE7DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBhY2Nlc3NvciB6ID0gMTsNCiAgICBAZGVjDQogICAgQGRlYw0KICAgIHN0YXRpYyAjbWV0aG9kKCkgeyB9DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQ0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc3RhdGljIHNldCAjeCh2YWx1ZSkgeyB9DQogICAgQGRlYw0KICAgIEBkZWMNCiAgICBzdGF0aWMgI3kgPSAxOw0KICAgIEBkZWMNCiAgICBAZGVjDQogICAgc3RhdGljIGFjY2Vzc29yICN6ID0gMTsNCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVzRGVjb3JhdG9ycy1jbGFzc0RlY2xhcmF0aW9uLXNvdXJjZU1hcC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxDQUFDLEdBQUc7QUFDSixDQUFDLEdBQUc7TUFDRSxDQUFDO0lBQ0gsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFJLENBQUM7SUFFWCxDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7UUFDQSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJCLENBQUMsR0FBRztJQUNKLENBQUMsR0FBRztRQUNBLENBQUMsQ0FBQyxLQUFhLElBQUksQ0FBQztJQUV4QixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRU4sQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFZixDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixNQUFNLENBQUMsT0FBTyxLQUFJLENBQUM7SUFFbkIsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0IsQ0FBQyxHQUFHO0lBQ0osQ0FBQyxHQUFHO0lBQ0osTUFBTSxLQUFLLEVBQUUsQ0FBQyxLQUFhLElBQUksQ0FBQztJQUVoQyxDQUFDLEdBQUc7SUFDSixDQUFDLEdBQUc7SUFDSixNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVkLENBQUMsR0FBRztJQUNKLENBQUMsR0FBRztJQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztDQUMxQiJ9,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
//// [esDecorators-classDeclaration-sourceMap.d.ts.map]
--{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
--//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTTtJQUVOLElBRUksQ0FBQyxJQUlRLE1BQU0sQ0FKRTtJQUVyQixJQUVJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFLO0lBSXhCLENBQUMsU0FBSztJQUlOLFFBQVEsQ0FBQyxDQUFDLFNBQUs7Q0FxQmxCIn0=,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
-+{"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM,SAAK;IAEX,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
-+//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7DQpkZWNsYXJlIGNsYXNzIEMgew0KICAgICNwcml2YXRlOw0KICAgIG1ldGhvZCgpOiB2b2lkOw0KICAgIGdldCB4KCk6IG51bWJlcjsNCiAgICBzZXQgeCh2YWx1ZTogbnVtYmVyKTsNCiAgICB5OiBudW1iZXI7DQogICAgYWNjZXNzb3IgejogbnVtYmVyOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUVyQixjQUVNLENBQUM7O0lBR0gsTUFBTSxTQUFLO0lBRVgsSUFFSSxDQUFDLElBSVEsTUFBTSxDQUpFO0lBRXJCLElBRUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUs7SUFJeEIsQ0FBQyxTQUFLO0lBSU4sUUFBUSxDQUFDLENBQUMsU0FBSztDQXFCbEIifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg==
\ No newline at end of file
+ {"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt
index 6e14258672d..f3c33ab2132 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt
@@ -617,17 +617,14 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
>>> method(): void;
1 >^^^^
2 > ^^^^^^
-3 > ^^^^^^^^^
-4 > ^^->
+3 > ^^^^^^^^^^^->
1 > {
> @dec
> @dec
>
2 > method
-3 > () {}
1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
---
>>> get x(): number;
1->^^^^
@@ -637,7 +634,7 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts
5 > ^^^^^^
6 > ^
7 > ^^^^^^->
-1->
+1->() {}
>
>
2 > @dec
diff --git a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt.diff b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt.diff
index 408e8fe5e9b..a5d798792ef 100644
--- a/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/esDecorators-classDeclaration-sourceMap(target=esnext).sourcemap.txt.diff
@@ -12,32 +12,4 @@
+---
>>>//# sourceMappingURL=esDecorators-classDeclaration-sourceMap.js.map===================================================================
JsFile: esDecorators-classDeclaration-sourceMap.d.ts
- mapUrl: esDecorators-classDeclaration-sourceMap.d.ts.map
-@@= skipped -55, +61 lines =@@
- >>> method(): void;
- 1 >^^^^
- 2 > ^^^^^^
--3 > ^^^^^^^^^^^->
-+3 > ^^^^^^^^^
-+4 > ^^->
- 1 > {
- > @dec
- > @dec
- >
- 2 > method
-+3 > () {}
- 1 >Emitted(4, 5) Source(8, 5) + SourceIndex(0)
- 2 >Emitted(4, 11) Source(8, 11) + SourceIndex(0)
-+3 >Emitted(4, 20) Source(8, 16) + SourceIndex(0)
- ---
- >>> get x(): number;
- 1->^^^^
-@@= skipped -17, +20 lines =@@
- 5 > ^^^^^^
- 6 > ^
- 7 > ^^^^^^->
--1->() {}
-+1->
- >
- >
- 2 > @dec
\ No newline at end of file
+ mapUrl: esDecorators-classDeclaration-sourceMap.d.ts.map
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map b/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map
index d3fac76d4f1..2bcc1e45898 100644
--- a/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map
+++ b/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map
@@ -1,3 +1,3 @@
//// [file.jsx.map]
-{"version":3,"file":"file.jsx","sourceRoot":"","sources":["file.tsx"],"names":[],"mappings":";AAKA,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACV,MAAa,GAAG;QAAG,gBAAgB,CAAC;KAAE;IAAzB,EAAA,GAAG,MAAsB,CAAA;IACtC,IAAiB,CAAC,CAKjB;IALD,WAAiB,CAAC;QACjB,MAAa,GAAG;SAAI;QAAP,EAAA,GAAG,MAAI,CAAA;QAEpB,WAAW;QACX,gBAAgB;IACjB,CAAC,EALgB,CAAC,GAAD,EAAA,CAAC,KAAD,EAAA,CAAC,QAKjB;AACF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,WAAU,CAAC;IACV,aAAa;IACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IAEb,IAAiB,CAAC,CAMjB;IAND,WAAiB,CAAC;QACjB,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;QAEb,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IACd,CAAC,EANgB,CAAC,GAAD,EAAA,CAAC,KAAD,EAAA,CAAC,QAMjB;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;AAED,WAAU,CAAC;IACV,eAAe;IACf,GAAC,CAAC,GAAG,EAAE,CAAC,GAAC,CAAC,GAAG,CAAC,AAAD,EAAG,CAAC;AAClB,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;AAED,WAAU,GAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,eAAe;IACf,OAAG,EAAE,CAAC,OAAG,CAAC,AAAD,EAAG,CAAC;AACd,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIE07DQooZnVuY3Rpb24gKE0pIHsNCiAgICBjbGFzcyBGb28gew0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsgfQ0KICAgIH0NCiAgICBNLkZvbyA9IEZvbzsNCiAgICBsZXQgUzsNCiAgICAoZnVuY3Rpb24gKFMpIHsNCiAgICAgICAgY2xhc3MgQmFyIHsNCiAgICAgICAgfQ0KICAgICAgICBTLkJhciA9IEJhcjsNCiAgICAgICAgLy8gRW1pdCBGb28NCiAgICAgICAgLy8gRm9vLCA8Rm9vIC8+Ow0KICAgIH0pKFMgPSBNLlMgfHwgKE0uUyA9IHt9KSk7DQp9KShNIHx8IChNID0ge30pKTsNCihmdW5jdGlvbiAoTSkgew0KICAgIC8vIEVtaXQgTS5Gb28NCiAgICBNLkZvbywgPE0uRm9vIC8+Ow0KICAgIGxldCBTOw0KICAgIChmdW5jdGlvbiAoUykgew0KICAgICAgICAvLyBFbWl0IE0uRm9vDQogICAgICAgIE0uRm9vLCA8TS5Gb28gLz47DQogICAgICAgIC8vIEVtaXQgUy5CYXINCiAgICAgICAgUy5CYXIsIDxTLkJhciAvPjsNCiAgICB9KShTID0gTS5TIHx8IChNLlMgPSB7fSkpOw0KfSkoTSB8fCAoTSA9IHt9KSk7DQooZnVuY3Rpb24gKE0pIHsNCiAgICAvLyBFbWl0IE0uUy5CYXINCiAgICBNLlMuQmFyLCA8TS5TLkJhciAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KKGZ1bmN0aW9uIChNXzEpIHsNCiAgICB2YXIgTSA9IDEwMDsNCiAgICAvLyBFbWl0IE1fMS5Gb28NCiAgICBNXzEuRm9vLCA8TV8xLkZvbyAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qc3gubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsSUFBVSxDQUFDLENBUVY7QUFSRCxXQUFVLENBQUM7SUFDVixNQUFhLEdBQUc7UUFBRyxnQkFBZ0IsQ0FBQztLQUFFO0lBQXpCLEVBQUEsR0FBRyxNQUFzQixDQUFBO0lBQ3RDLElBQWlCLENBQUMsQ0FLakI7SUFMRCxXQUFpQixDQUFDO1FBQ2pCLE1BQWEsR0FBRztTQUFJO1FBQVAsRUFBQSxHQUFHLE1BQUksQ0FBQTtRQUVwQixXQUFXO1FBQ1gsZ0JBQWdCO0lBQ2pCLENBQUMsRUFMZ0IsQ0FBQyxHQUFELEVBQUEsQ0FBQyxLQUFELEVBQUEsQ0FBQyxRQUtqQjtBQUNGLENBQUMsRUFSUyxDQUFDLEtBQUQsQ0FBQyxRQVFWO0FBRUQsV0FBVSxDQUFDO0lBQ1YsYUFBYTtJQUNiLEtBQUcsRUFBRSxDQUFDLEtBQUcsQ0FBQyxBQUFELEVBQUcsQ0FBQztJQUViLElBQWlCLENBQUMsQ0FNakI7SUFORCxXQUFpQixDQUFDO1FBQ2pCLGFBQWE7UUFDYixLQUFHLEVBQUUsQ0FBQyxLQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7UUFFYixhQUFhO1FBQ2IsS0FBRyxFQUFFLENBQUMsS0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0lBQ2QsQ0FBQyxFQU5nQixDQUFDLEdBQUQsRUFBQSxDQUFDLEtBQUQsRUFBQSxDQUFDLFFBTWpCO0FBRUYsQ0FBQyxFQVpTLENBQUMsS0FBRCxDQUFDLFFBWVY7QUFFRCxXQUFVLENBQUM7SUFDVixlQUFlO0lBQ2YsR0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7QUFDbEIsQ0FBQyxFQUhTLENBQUMsS0FBRCxDQUFDLFFBR1Y7QUFFRCxXQUFVLEdBQUM7SUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDWixlQUFlO0lBQ2YsT0FBRyxFQUFFLENBQUMsT0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0FBQ2QsQ0FBQyxFQUpTLENBQUMsS0FBRCxDQUFDLFFBSVYifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKCWludGVyZmFjZSBFbGVtZW50IHsgfQoJaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHsgfQp9CgpuYW1lc3BhY2UgTSB7CglleHBvcnQgY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKSB7IH0gfQoJZXhwb3J0IG5hbWVzcGFjZSBTIHsKCQlleHBvcnQgY2xhc3MgQmFyIHsgfQoKCQkvLyBFbWl0IEZvbwoJCS8vIEZvbywgPEZvbyAvPjsKCX0KfQoKbmFtZXNwYWNlIE0gewoJLy8gRW1pdCBNLkZvbwoJRm9vLCA8Rm9vIC8+OwoKCWV4cG9ydCBuYW1lc3BhY2UgUyB7CgkJLy8gRW1pdCBNLkZvbwoJCUZvbywgPEZvbyAvPjsKCgkJLy8gRW1pdCBTLkJhcgoJCUJhciwgPEJhciAvPjsKCX0KCn0KCm5hbWVzcGFjZSBNIHsKCS8vIEVtaXQgTS5TLkJhcgoJUy5CYXIsIDxTLkJhciAvPjsKfQoKbmFtZXNwYWNlIE0gewoJdmFyIE0gPSAxMDA7CgkvLyBFbWl0IE1fMS5Gb28KCUZvbywgPEZvbyAvPjsKfQo=
+{"version":3,"file":"file.jsx","sourceRoot":"","sources":["file.tsx"],"names":[],"mappings":";AAKA,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACV,MAAa,GAAG;QAAG,gBAAgB,CAAC;KAAE;IAAzB,KAAG,MAAsB,CAAA;IACtC,IAAiB,CAAC,CAKjB;IALD,WAAiB,CAAC;QACjB,MAAa,GAAG;SAAI;QAAP,KAAG,MAAI,CAAA;QAEpB,WAAW;QACX,gBAAgB;IACjB,CAAC,EALgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAKjB;AACF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,WAAU,CAAC;IACV,aAAa;IACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IAEb,IAAiB,CAAC,CAMjB;IAND,WAAiB,CAAC;QACjB,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;QAEb,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IACd,CAAC,EANgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAMjB;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;AAED,WAAU,CAAC;IACV,eAAe;IACf,GAAC,CAAC,GAAG,EAAE,CAAC,GAAC,CAAC,GAAG,CAAC,AAAD,EAAG,CAAC;AAClB,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;AAED,WAAU,GAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,eAAe;IACf,OAAG,EAAE,CAAC,OAAG,CAAC,AAAD,EAAG,CAAC;AACd,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV"}
+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIE07DQooZnVuY3Rpb24gKE0pIHsNCiAgICBjbGFzcyBGb28gew0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsgfQ0KICAgIH0NCiAgICBNLkZvbyA9IEZvbzsNCiAgICBsZXQgUzsNCiAgICAoZnVuY3Rpb24gKFMpIHsNCiAgICAgICAgY2xhc3MgQmFyIHsNCiAgICAgICAgfQ0KICAgICAgICBTLkJhciA9IEJhcjsNCiAgICAgICAgLy8gRW1pdCBGb28NCiAgICAgICAgLy8gRm9vLCA8Rm9vIC8+Ow0KICAgIH0pKFMgPSBNLlMgfHwgKE0uUyA9IHt9KSk7DQp9KShNIHx8IChNID0ge30pKTsNCihmdW5jdGlvbiAoTSkgew0KICAgIC8vIEVtaXQgTS5Gb28NCiAgICBNLkZvbywgPE0uRm9vIC8+Ow0KICAgIGxldCBTOw0KICAgIChmdW5jdGlvbiAoUykgew0KICAgICAgICAvLyBFbWl0IE0uRm9vDQogICAgICAgIE0uRm9vLCA8TS5Gb28gLz47DQogICAgICAgIC8vIEVtaXQgUy5CYXINCiAgICAgICAgUy5CYXIsIDxTLkJhciAvPjsNCiAgICB9KShTID0gTS5TIHx8IChNLlMgPSB7fSkpOw0KfSkoTSB8fCAoTSA9IHt9KSk7DQooZnVuY3Rpb24gKE0pIHsNCiAgICAvLyBFbWl0IE0uUy5CYXINCiAgICBNLlMuQmFyLCA8TS5TLkJhciAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KKGZ1bmN0aW9uIChNXzEpIHsNCiAgICB2YXIgTSA9IDEwMDsNCiAgICAvLyBFbWl0IE1fMS5Gb28NCiAgICBNXzEuRm9vLCA8TV8xLkZvbyAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qc3gubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsSUFBVSxDQUFDLENBUVY7QUFSRCxXQUFVLENBQUM7SUFDVixNQUFhLEdBQUc7UUFBRyxnQkFBZ0IsQ0FBQztLQUFFO0lBQXpCLEtBQUcsTUFBc0IsQ0FBQTtJQUN0QyxJQUFpQixDQUFDLENBS2pCO0lBTEQsV0FBaUIsQ0FBQztRQUNqQixNQUFhLEdBQUc7U0FBSTtRQUFQLEtBQUcsTUFBSSxDQUFBO1FBRXBCLFdBQVc7UUFDWCxnQkFBZ0I7SUFDakIsQ0FBQyxFQUxnQixDQUFDLEdBQUQsR0FBQyxLQUFELEdBQUMsUUFLakI7QUFDRixDQUFDLEVBUlMsQ0FBQyxLQUFELENBQUMsUUFRVjtBQUVELFdBQVUsQ0FBQztJQUNWLGFBQWE7SUFDYixLQUFHLEVBQUUsQ0FBQyxLQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7SUFFYixJQUFpQixDQUFDLENBTWpCO0lBTkQsV0FBaUIsQ0FBQztRQUNqQixhQUFhO1FBQ2IsS0FBRyxFQUFFLENBQUMsS0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO1FBRWIsYUFBYTtRQUNiLEtBQUcsRUFBRSxDQUFDLEtBQUcsQ0FBQyxBQUFELEVBQUcsQ0FBQztJQUNkLENBQUMsRUFOZ0IsQ0FBQyxHQUFELEdBQUMsS0FBRCxHQUFDLFFBTWpCO0FBRUYsQ0FBQyxFQVpTLENBQUMsS0FBRCxDQUFDLFFBWVY7QUFFRCxXQUFVLENBQUM7SUFDVixlQUFlO0lBQ2YsR0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7QUFDbEIsQ0FBQyxFQUhTLENBQUMsS0FBRCxDQUFDLFFBR1Y7QUFFRCxXQUFVLEdBQUM7SUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDWixlQUFlO0lBQ2YsT0FBRyxFQUFFLENBQUMsT0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0FBQ2QsQ0FBQyxFQUpTLENBQUMsS0FBRCxDQUFDLFFBSVYifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKCWludGVyZmFjZSBFbGVtZW50IHsgfQoJaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHsgfQp9CgpuYW1lc3BhY2UgTSB7CglleHBvcnQgY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKSB7IH0gfQoJZXhwb3J0IG5hbWVzcGFjZSBTIHsKCQlleHBvcnQgY2xhc3MgQmFyIHsgfQoKCQkvLyBFbWl0IEZvbwoJCS8vIEZvbywgPEZvbyAvPjsKCX0KfQoKbmFtZXNwYWNlIE0gewoJLy8gRW1pdCBNLkZvbwoJRm9vLCA8Rm9vIC8+OwoKCWV4cG9ydCBuYW1lc3BhY2UgUyB7CgkJLy8gRW1pdCBNLkZvbwoJCUZvbywgPEZvbyAvPjsKCgkJLy8gRW1pdCBTLkJhcgoJCUJhciwgPEJhciAvPjsKCX0KCn0KCm5hbWVzcGFjZSBNIHsKCS8vIEVtaXQgTS5TLkJhcgoJUy5CYXIsIDxTLkJhciAvPjsKfQoKbmFtZXNwYWNlIE0gewoJdmFyIE0gPSAxMDA7CgkvLyBFbWl0IE1fMS5Gb28KCUZvbywgPEZvbyAvPjsKfQo=
diff --git a/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map.diff b/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map.diff
index 3e1bfaaf160..c25a9f2bb2f 100644
--- a/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map.diff
+++ b/testdata/baselines/reference/submodule/conformance/tsxEmit3.js.map.diff
@@ -4,5 +4,5 @@
//// [file.jsx.map]
-{"version":3,"file":"file.jsx","sourceRoot":"","sources":["file.tsx"],"names":[],"mappings":";AAKA,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACV,MAAa,GAAG;QAAG,gBAAgB,CAAC;KAAE;IAAzB,KAAG,MAAsB,CAAA;IACtC,IAAiB,CAAC,CAKjB;IALD,WAAiB,CAAC;QACjB,MAAa,GAAG;SAAI;QAAP,KAAG,MAAI,CAAA;QAEpB,WAAW;QACX,gBAAgB;IACjB,CAAC,EALgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAKjB;AACF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,WAAU,CAAC;IACV,aAAa;IACb,EAAA,GAAG,EAAE,CAAC,EAAA,GAAG,CAAC,AAAD,EAAG,CAAC;IAEb,IAAiB,CAAC,CAMjB;IAND,WAAiB,CAAC;QACjB,aAAa;QACb,EAAA,GAAG,EAAE,CAAC,EAAA,GAAG,CAAC,AAAD,EAAG,CAAC;QAEb,aAAa;QACb,EAAA,GAAG,EAAE,CAAC,EAAA,GAAG,CAAC,AAAD,EAAG,CAAC;IACd,CAAC,EANgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAMjB;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;AAED,WAAU,CAAC;IACV,eAAe;IACf,EAAA,CAAC,CAAC,GAAG,EAAE,CAAC,EAAA,CAAC,CAAC,GAAG,CAAC,AAAD,EAAG,CAAC;AAClB,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;AAED,WAAU,GAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,eAAe;IACf,IAAA,GAAG,EAAE,CAAC,IAAA,GAAG,CAAC,AAAD,EAAG,CAAC;AACd,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV"}
-//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIE07DQooZnVuY3Rpb24gKE0pIHsNCiAgICBjbGFzcyBGb28gew0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsgfQ0KICAgIH0NCiAgICBNLkZvbyA9IEZvbzsNCiAgICBsZXQgUzsNCiAgICAoZnVuY3Rpb24gKFMpIHsNCiAgICAgICAgY2xhc3MgQmFyIHsNCiAgICAgICAgfQ0KICAgICAgICBTLkJhciA9IEJhcjsNCiAgICAgICAgLy8gRW1pdCBGb28NCiAgICAgICAgLy8gRm9vLCA8Rm9vIC8+Ow0KICAgIH0pKFMgPSBNLlMgfHwgKE0uUyA9IHt9KSk7DQp9KShNIHx8IChNID0ge30pKTsNCihmdW5jdGlvbiAoTSkgew0KICAgIC8vIEVtaXQgTS5Gb28NCiAgICBNLkZvbywgPE0uRm9vIC8+Ow0KICAgIGxldCBTOw0KICAgIChmdW5jdGlvbiAoUykgew0KICAgICAgICAvLyBFbWl0IE0uRm9vDQogICAgICAgIE0uRm9vLCA8TS5Gb28gLz47DQogICAgICAgIC8vIEVtaXQgUy5CYXINCiAgICAgICAgUy5CYXIsIDxTLkJhciAvPjsNCiAgICB9KShTID0gTS5TIHx8IChNLlMgPSB7fSkpOw0KfSkoTSB8fCAoTSA9IHt9KSk7DQooZnVuY3Rpb24gKE0pIHsNCiAgICAvLyBFbWl0IE0uUy5CYXINCiAgICBNLlMuQmFyLCA8TS5TLkJhciAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KKGZ1bmN0aW9uIChNXzEpIHsNCiAgICB2YXIgTSA9IDEwMDsNCiAgICAvLyBFbWl0IE1fMS5Gb28NCiAgICBNXzEuRm9vLCA8TV8xLkZvbyAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qc3gubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsSUFBVSxDQUFDLENBUVY7QUFSRCxXQUFVLENBQUM7SUFDVixNQUFhLEdBQUc7UUFBRyxnQkFBZ0IsQ0FBQztLQUFFO0lBQXpCLEtBQUcsTUFBc0IsQ0FBQTtJQUN0QyxJQUFpQixDQUFDLENBS2pCO0lBTEQsV0FBaUIsQ0FBQztRQUNqQixNQUFhLEdBQUc7U0FBSTtRQUFQLEtBQUcsTUFBSSxDQUFBO1FBRXBCLFdBQVc7UUFDWCxnQkFBZ0I7SUFDakIsQ0FBQyxFQUxnQixDQUFDLEdBQUQsR0FBQyxLQUFELEdBQUMsUUFLakI7QUFDRixDQUFDLEVBUlMsQ0FBQyxLQUFELENBQUMsUUFRVjtBQUVELFdBQVUsQ0FBQztJQUNWLGFBQWE7SUFDYixFQUFBLEdBQUcsRUFBRSxDQUFDLEVBQUEsR0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0lBRWIsSUFBaUIsQ0FBQyxDQU1qQjtJQU5ELFdBQWlCLENBQUM7UUFDakIsYUFBYTtRQUNiLEVBQUEsR0FBRyxFQUFFLENBQUMsRUFBQSxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7UUFFYixhQUFhO1FBQ2IsRUFBQSxHQUFHLEVBQUUsQ0FBQyxFQUFBLEdBQUcsQ0FBQyxBQUFELEVBQUcsQ0FBQztJQUNkLENBQUMsRUFOZ0IsQ0FBQyxHQUFELEdBQUMsS0FBRCxHQUFDLFFBTWpCO0FBRUYsQ0FBQyxFQVpTLENBQUMsS0FBRCxDQUFDLFFBWVY7QUFFRCxXQUFVLENBQUM7SUFDVixlQUFlO0lBQ2YsRUFBQSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBQSxDQUFDLENBQUMsR0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0FBQ2xCLENBQUMsRUFIUyxDQUFDLEtBQUQsQ0FBQyxRQUdWO0FBRUQsV0FBVSxHQUFDO0lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ1osZUFBZTtJQUNmLElBQUEsR0FBRyxFQUFFLENBQUMsSUFBQSxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7QUFDZCxDQUFDLEVBSlMsQ0FBQyxLQUFELENBQUMsUUFJViJ9,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKCWludGVyZmFjZSBFbGVtZW50IHsgfQoJaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHsgfQp9CgpuYW1lc3BhY2UgTSB7CglleHBvcnQgY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKSB7IH0gfQoJZXhwb3J0IG5hbWVzcGFjZSBTIHsKCQlleHBvcnQgY2xhc3MgQmFyIHsgfQoKCQkvLyBFbWl0IEZvbwoJCS8vIEZvbywgPEZvbyAvPjsKCX0KfQoKbmFtZXNwYWNlIE0gewoJLy8gRW1pdCBNLkZvbwoJRm9vLCA8Rm9vIC8+OwoKCWV4cG9ydCBuYW1lc3BhY2UgUyB7CgkJLy8gRW1pdCBNLkZvbwoJCUZvbywgPEZvbyAvPjsKCgkJLy8gRW1pdCBTLkJhcgoJCUJhciwgPEJhciAvPjsKCX0KCn0KCm5hbWVzcGFjZSBNIHsKCS8vIEVtaXQgTS5TLkJhcgoJUy5CYXIsIDxTLkJhciAvPjsKfQoKbmFtZXNwYWNlIE0gewoJdmFyIE0gPSAxMDA7CgkvLyBFbWl0IE1fMS5Gb28KCUZvbywgPEZvbyAvPjsKfQo=
-+{"version":3,"file":"file.jsx","sourceRoot":"","sources":["file.tsx"],"names":[],"mappings":";AAKA,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACV,MAAa,GAAG;QAAG,gBAAgB,CAAC;KAAE;IAAzB,EAAA,GAAG,MAAsB,CAAA;IACtC,IAAiB,CAAC,CAKjB;IALD,WAAiB,CAAC;QACjB,MAAa,GAAG;SAAI;QAAP,EAAA,GAAG,MAAI,CAAA;QAEpB,WAAW;QACX,gBAAgB;IACjB,CAAC,EALgB,CAAC,GAAD,EAAA,CAAC,KAAD,EAAA,CAAC,QAKjB;AACF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,WAAU,CAAC;IACV,aAAa;IACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IAEb,IAAiB,CAAC,CAMjB;IAND,WAAiB,CAAC;QACjB,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;QAEb,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IACd,CAAC,EANgB,CAAC,GAAD,EAAA,CAAC,KAAD,EAAA,CAAC,QAMjB;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;AAED,WAAU,CAAC;IACV,eAAe;IACf,GAAC,CAAC,GAAG,EAAE,CAAC,GAAC,CAAC,GAAG,CAAC,AAAD,EAAG,CAAC;AAClB,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;AAED,WAAU,GAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,eAAe;IACf,OAAG,EAAE,CAAC,OAAG,CAAC,AAAD,EAAG,CAAC;AACd,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV"}
-+//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIE07DQooZnVuY3Rpb24gKE0pIHsNCiAgICBjbGFzcyBGb28gew0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsgfQ0KICAgIH0NCiAgICBNLkZvbyA9IEZvbzsNCiAgICBsZXQgUzsNCiAgICAoZnVuY3Rpb24gKFMpIHsNCiAgICAgICAgY2xhc3MgQmFyIHsNCiAgICAgICAgfQ0KICAgICAgICBTLkJhciA9IEJhcjsNCiAgICAgICAgLy8gRW1pdCBGb28NCiAgICAgICAgLy8gRm9vLCA8Rm9vIC8+Ow0KICAgIH0pKFMgPSBNLlMgfHwgKE0uUyA9IHt9KSk7DQp9KShNIHx8IChNID0ge30pKTsNCihmdW5jdGlvbiAoTSkgew0KICAgIC8vIEVtaXQgTS5Gb28NCiAgICBNLkZvbywgPE0uRm9vIC8+Ow0KICAgIGxldCBTOw0KICAgIChmdW5jdGlvbiAoUykgew0KICAgICAgICAvLyBFbWl0IE0uRm9vDQogICAgICAgIE0uRm9vLCA8TS5Gb28gLz47DQogICAgICAgIC8vIEVtaXQgUy5CYXINCiAgICAgICAgUy5CYXIsIDxTLkJhciAvPjsNCiAgICB9KShTID0gTS5TIHx8IChNLlMgPSB7fSkpOw0KfSkoTSB8fCAoTSA9IHt9KSk7DQooZnVuY3Rpb24gKE0pIHsNCiAgICAvLyBFbWl0IE0uUy5CYXINCiAgICBNLlMuQmFyLCA8TS5TLkJhciAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KKGZ1bmN0aW9uIChNXzEpIHsNCiAgICB2YXIgTSA9IDEwMDsNCiAgICAvLyBFbWl0IE1fMS5Gb28NCiAgICBNXzEuRm9vLCA8TV8xLkZvbyAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qc3gubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsSUFBVSxDQUFDLENBUVY7QUFSRCxXQUFVLENBQUM7SUFDVixNQUFhLEdBQUc7UUFBRyxnQkFBZ0IsQ0FBQztLQUFFO0lBQXpCLEVBQUEsR0FBRyxNQUFzQixDQUFBO0lBQ3RDLElBQWlCLENBQUMsQ0FLakI7SUFMRCxXQUFpQixDQUFDO1FBQ2pCLE1BQWEsR0FBRztTQUFJO1FBQVAsRUFBQSxHQUFHLE1BQUksQ0FBQTtRQUVwQixXQUFXO1FBQ1gsZ0JBQWdCO0lBQ2pCLENBQUMsRUFMZ0IsQ0FBQyxHQUFELEVBQUEsQ0FBQyxLQUFELEVBQUEsQ0FBQyxRQUtqQjtBQUNGLENBQUMsRUFSUyxDQUFDLEtBQUQsQ0FBQyxRQVFWO0FBRUQsV0FBVSxDQUFDO0lBQ1YsYUFBYTtJQUNiLEtBQUcsRUFBRSxDQUFDLEtBQUcsQ0FBQyxBQUFELEVBQUcsQ0FBQztJQUViLElBQWlCLENBQUMsQ0FNakI7SUFORCxXQUFpQixDQUFDO1FBQ2pCLGFBQWE7UUFDYixLQUFHLEVBQUUsQ0FBQyxLQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7UUFFYixhQUFhO1FBQ2IsS0FBRyxFQUFFLENBQUMsS0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0lBQ2QsQ0FBQyxFQU5nQixDQUFDLEdBQUQsRUFBQSxDQUFDLEtBQUQsRUFBQSxDQUFDLFFBTWpCO0FBRUYsQ0FBQyxFQVpTLENBQUMsS0FBRCxDQUFDLFFBWVY7QUFFRCxXQUFVLENBQUM7SUFDVixlQUFlO0lBQ2YsR0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7QUFDbEIsQ0FBQyxFQUhTLENBQUMsS0FBRCxDQUFDLFFBR1Y7QUFFRCxXQUFVLEdBQUM7SUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDWixlQUFlO0lBQ2YsT0FBRyxFQUFFLENBQUMsT0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0FBQ2QsQ0FBQyxFQUpTLENBQUMsS0FBRCxDQUFDLFFBSVYifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKCWludGVyZmFjZSBFbGVtZW50IHsgfQoJaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHsgfQp9CgpuYW1lc3BhY2UgTSB7CglleHBvcnQgY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKSB7IH0gfQoJZXhwb3J0IG5hbWVzcGFjZSBTIHsKCQlleHBvcnQgY2xhc3MgQmFyIHsgfQoKCQkvLyBFbWl0IEZvbwoJCS8vIEZvbywgPEZvbyAvPjsKCX0KfQoKbmFtZXNwYWNlIE0gewoJLy8gRW1pdCBNLkZvbwoJRm9vLCA8Rm9vIC8+OwoKCWV4cG9ydCBuYW1lc3BhY2UgUyB7CgkJLy8gRW1pdCBNLkZvbwoJCUZvbywgPEZvbyAvPjsKCgkJLy8gRW1pdCBTLkJhcgoJCUJhciwgPEJhciAvPjsKCX0KCn0KCm5hbWVzcGFjZSBNIHsKCS8vIEVtaXQgTS5TLkJhcgoJUy5CYXIsIDxTLkJhciAvPjsKfQoKbmFtZXNwYWNlIE0gewoJdmFyIE0gPSAxMDA7CgkvLyBFbWl0IE1fMS5Gb28KCUZvbywgPEZvbyAvPjsKfQo=
\ No newline at end of file
++{"version":3,"file":"file.jsx","sourceRoot":"","sources":["file.tsx"],"names":[],"mappings":";AAKA,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACV,MAAa,GAAG;QAAG,gBAAgB,CAAC;KAAE;IAAzB,KAAG,MAAsB,CAAA;IACtC,IAAiB,CAAC,CAKjB;IALD,WAAiB,CAAC;QACjB,MAAa,GAAG;SAAI;QAAP,KAAG,MAAI,CAAA;QAEpB,WAAW;QACX,gBAAgB;IACjB,CAAC,EALgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAKjB;AACF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,WAAU,CAAC;IACV,aAAa;IACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IAEb,IAAiB,CAAC,CAMjB;IAND,WAAiB,CAAC;QACjB,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;QAEb,aAAa;QACb,KAAG,EAAE,CAAC,KAAG,CAAC,AAAD,EAAG,CAAC;IACd,CAAC,EANgB,CAAC,GAAD,GAAC,KAAD,GAAC,QAMjB;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;AAED,WAAU,CAAC;IACV,eAAe;IACf,GAAC,CAAC,GAAG,EAAE,CAAC,GAAC,CAAC,GAAG,CAAC,AAAD,EAAG,CAAC;AAClB,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;AAED,WAAU,GAAC;IACV,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,eAAe;IACf,OAAG,EAAE,CAAC,OAAG,CAAC,AAAD,EAAG,CAAC;AACd,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV"}
++//// https://sokra.github.io/source-map-visualization#base64,InVzZSBzdHJpY3QiOw0KdmFyIE07DQooZnVuY3Rpb24gKE0pIHsNCiAgICBjbGFzcyBGb28gew0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsgfQ0KICAgIH0NCiAgICBNLkZvbyA9IEZvbzsNCiAgICBsZXQgUzsNCiAgICAoZnVuY3Rpb24gKFMpIHsNCiAgICAgICAgY2xhc3MgQmFyIHsNCiAgICAgICAgfQ0KICAgICAgICBTLkJhciA9IEJhcjsNCiAgICAgICAgLy8gRW1pdCBGb28NCiAgICAgICAgLy8gRm9vLCA8Rm9vIC8+Ow0KICAgIH0pKFMgPSBNLlMgfHwgKE0uUyA9IHt9KSk7DQp9KShNIHx8IChNID0ge30pKTsNCihmdW5jdGlvbiAoTSkgew0KICAgIC8vIEVtaXQgTS5Gb28NCiAgICBNLkZvbywgPE0uRm9vIC8+Ow0KICAgIGxldCBTOw0KICAgIChmdW5jdGlvbiAoUykgew0KICAgICAgICAvLyBFbWl0IE0uRm9vDQogICAgICAgIE0uRm9vLCA8TS5Gb28gLz47DQogICAgICAgIC8vIEVtaXQgUy5CYXINCiAgICAgICAgUy5CYXIsIDxTLkJhciAvPjsNCiAgICB9KShTID0gTS5TIHx8IChNLlMgPSB7fSkpOw0KfSkoTSB8fCAoTSA9IHt9KSk7DQooZnVuY3Rpb24gKE0pIHsNCiAgICAvLyBFbWl0IE0uUy5CYXINCiAgICBNLlMuQmFyLCA8TS5TLkJhciAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KKGZ1bmN0aW9uIChNXzEpIHsNCiAgICB2YXIgTSA9IDEwMDsNCiAgICAvLyBFbWl0IE1fMS5Gb28NCiAgICBNXzEuRm9vLCA8TV8xLkZvbyAvPjsNCn0pKE0gfHwgKE0gPSB7fSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsZS5qc3gubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsSUFBVSxDQUFDLENBUVY7QUFSRCxXQUFVLENBQUM7SUFDVixNQUFhLEdBQUc7UUFBRyxnQkFBZ0IsQ0FBQztLQUFFO0lBQXpCLEtBQUcsTUFBc0IsQ0FBQTtJQUN0QyxJQUFpQixDQUFDLENBS2pCO0lBTEQsV0FBaUIsQ0FBQztRQUNqQixNQUFhLEdBQUc7U0FBSTtRQUFQLEtBQUcsTUFBSSxDQUFBO1FBRXBCLFdBQVc7UUFDWCxnQkFBZ0I7SUFDakIsQ0FBQyxFQUxnQixDQUFDLEdBQUQsR0FBQyxLQUFELEdBQUMsUUFLakI7QUFDRixDQUFDLEVBUlMsQ0FBQyxLQUFELENBQUMsUUFRVjtBQUVELFdBQVUsQ0FBQztJQUNWLGFBQWE7SUFDYixLQUFHLEVBQUUsQ0FBQyxLQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7SUFFYixJQUFpQixDQUFDLENBTWpCO0lBTkQsV0FBaUIsQ0FBQztRQUNqQixhQUFhO1FBQ2IsS0FBRyxFQUFFLENBQUMsS0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO1FBRWIsYUFBYTtRQUNiLEtBQUcsRUFBRSxDQUFDLEtBQUcsQ0FBQyxBQUFELEVBQUcsQ0FBQztJQUNkLENBQUMsRUFOZ0IsQ0FBQyxHQUFELEdBQUMsS0FBRCxHQUFDLFFBTWpCO0FBRUYsQ0FBQyxFQVpTLENBQUMsS0FBRCxDQUFDLFFBWVY7QUFFRCxXQUFVLENBQUM7SUFDVixlQUFlO0lBQ2YsR0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxHQUFHLENBQUMsQUFBRCxFQUFHLENBQUM7QUFDbEIsQ0FBQyxFQUhTLENBQUMsS0FBRCxDQUFDLFFBR1Y7QUFFRCxXQUFVLEdBQUM7SUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDWixlQUFlO0lBQ2YsT0FBRyxFQUFFLENBQUMsT0FBRyxDQUFDLEFBQUQsRUFBRyxDQUFDO0FBQ2QsQ0FBQyxFQUpTLENBQUMsS0FBRCxDQUFDLFFBSVYifQ==,ZGVjbGFyZSBuYW1lc3BhY2UgSlNYIHsKCWludGVyZmFjZSBFbGVtZW50IHsgfQoJaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHsgfQp9CgpuYW1lc3BhY2UgTSB7CglleHBvcnQgY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKSB7IH0gfQoJZXhwb3J0IG5hbWVzcGFjZSBTIHsKCQlleHBvcnQgY2xhc3MgQmFyIHsgfQoKCQkvLyBFbWl0IEZvbwoJCS8vIEZvbywgPEZvbyAvPjsKCX0KfQoKbmFtZXNwYWNlIE0gewoJLy8gRW1pdCBNLkZvbwoJRm9vLCA8Rm9vIC8+OwoKCWV4cG9ydCBuYW1lc3BhY2UgUyB7CgkJLy8gRW1pdCBNLkZvbwoJCUZvbywgPEZvbyAvPjsKCgkJLy8gRW1pdCBTLkJhcgoJCUJhciwgPEJhciAvPjsKCX0KCn0KCm5hbWVzcGFjZSBNIHsKCS8vIEVtaXQgTS5TLkJhcgoJUy5CYXIsIDxTLkJhciAvPjsKfQoKbmFtZXNwYWNlIE0gewoJdmFyIE0gPSAxMDA7CgkvLyBFbWl0IE1fMS5Gb28KCUZvbywgPEZvbyAvPjsKfQo=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt b/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt
index e14c324cb93..3e6a35beb37 100644
--- a/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt
+++ b/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt
@@ -81,20 +81,17 @@ sourceFile:file.tsx
---
>>> M.Foo = Foo;
1->^^^^
-2 > ^^
-3 > ^^^
-4 > ^^^^^^
-5 > ^
+2 > ^^^^^
+3 > ^^^^^^
+4 > ^
1->
-2 >
-3 > Foo
-4 > { constructor() { } }
-5 >
+2 > Foo
+3 > { constructor() { } }
+4 >
1->Emitted(7, 5) Source(7, 15) + SourceIndex(0)
-2 >Emitted(7, 7) Source(7, 15) + SourceIndex(0)
-3 >Emitted(7, 10) Source(7, 18) + SourceIndex(0)
-4 >Emitted(7, 16) Source(7, 40) + SourceIndex(0)
-5 >Emitted(7, 17) Source(7, 40) + SourceIndex(0)
+2 >Emitted(7, 10) Source(7, 18) + SourceIndex(0)
+3 >Emitted(7, 16) Source(7, 40) + SourceIndex(0)
+4 >Emitted(7, 17) Source(7, 40) + SourceIndex(0)
---
>>> let S;
1 >^^^^
@@ -149,20 +146,17 @@ sourceFile:file.tsx
---
>>> S.Bar = Bar;
1->^^^^^^^^
-2 > ^^
-3 > ^^^
-4 > ^^^^^^
-5 > ^
+2 > ^^^^^
+3 > ^^^^^^
+4 > ^
1->
-2 >
-3 > Bar
-4 > { }
-5 >
+2 > Bar
+3 > { }
+4 >
1->Emitted(12, 9) Source(9, 16) + SourceIndex(0)
-2 >Emitted(12, 11) Source(9, 16) + SourceIndex(0)
-3 >Emitted(12, 14) Source(9, 19) + SourceIndex(0)
-4 >Emitted(12, 20) Source(9, 23) + SourceIndex(0)
-5 >Emitted(12, 21) Source(9, 23) + SourceIndex(0)
+2 >Emitted(12, 14) Source(9, 19) + SourceIndex(0)
+3 >Emitted(12, 20) Source(9, 23) + SourceIndex(0)
+4 >Emitted(12, 21) Source(9, 23) + SourceIndex(0)
---
>>> // Emit Foo
1 >^^^^^^^^
@@ -191,24 +185,20 @@ sourceFile:file.tsx
3 > ^^
4 > ^
5 > ^^^
-6 > ^^
-7 > ^
-8 > ^^^^^
-9 > ^^
-10> ^
-11> ^^^^^^^^
+6 > ^^^
+7 > ^^^^^
+8 > ^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > S
5 >
-6 >
-7 > S
-8 >
-9 >
-10> S
-11> {
+6 > S
+7 >
+8 > S
+9 > {
> export class Bar { }
>
> // Emit Foo
@@ -219,12 +209,10 @@ sourceFile:file.tsx
3 >Emitted(15, 8) Source(8, 19) + SourceIndex(0)
4 >Emitted(15, 9) Source(8, 20) + SourceIndex(0)
5 >Emitted(15, 12) Source(8, 19) + SourceIndex(0)
-6 >Emitted(15, 14) Source(8, 19) + SourceIndex(0)
-7 >Emitted(15, 15) Source(8, 20) + SourceIndex(0)
-8 >Emitted(15, 20) Source(8, 19) + SourceIndex(0)
-9 >Emitted(15, 22) Source(8, 19) + SourceIndex(0)
-10>Emitted(15, 23) Source(8, 20) + SourceIndex(0)
-11>Emitted(15, 31) Source(13, 3) + SourceIndex(0)
+6 >Emitted(15, 15) Source(8, 20) + SourceIndex(0)
+7 >Emitted(15, 20) Source(8, 19) + SourceIndex(0)
+8 >Emitted(15, 23) Source(8, 20) + SourceIndex(0)
+9 >Emitted(15, 31) Source(13, 3) + SourceIndex(0)
---
>>>})(M || (M = {}));
1 >
@@ -435,24 +423,20 @@ sourceFile:file.tsx
3 > ^^
4 > ^
5 > ^^^
-6 > ^^
-7 > ^
-8 > ^^^^^
-9 > ^^
-10> ^
-11> ^^^^^^^^
+6 > ^^^
+7 > ^^^^^
+8 > ^^^
+9 > ^^^^^^^^
1->
>
2 > }
3 >
4 > S
5 >
-6 >
-7 > S
-8 >
-9 >
-10> S
-11> {
+6 > S
+7 >
+8 > S
+9 > {
> // Emit M.Foo
> Foo, ;
>
@@ -464,12 +448,10 @@ sourceFile:file.tsx
3 >Emitted(26, 8) Source(20, 19) + SourceIndex(0)
4 >Emitted(26, 9) Source(20, 20) + SourceIndex(0)
5 >Emitted(26, 12) Source(20, 19) + SourceIndex(0)
-6 >Emitted(26, 14) Source(20, 19) + SourceIndex(0)
-7 >Emitted(26, 15) Source(20, 20) + SourceIndex(0)
-8 >Emitted(26, 20) Source(20, 19) + SourceIndex(0)
-9 >Emitted(26, 22) Source(20, 19) + SourceIndex(0)
-10>Emitted(26, 23) Source(20, 20) + SourceIndex(0)
-11>Emitted(26, 31) Source(26, 3) + SourceIndex(0)
+6 >Emitted(26, 15) Source(20, 20) + SourceIndex(0)
+7 >Emitted(26, 20) Source(20, 19) + SourceIndex(0)
+8 >Emitted(26, 23) Source(20, 20) + SourceIndex(0)
+9 >Emitted(26, 31) Source(26, 3) + SourceIndex(0)
---
>>>})(M || (M = {}));
1 >
diff --git a/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt.diff b/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt.diff
index 74bef30072b..4cd438fdc4e 100644
--- a/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/conformance/tsxEmit3.sourcemap.txt.diff
@@ -1,116 +1,6 @@
--- old.tsxEmit3.sourcemap.txt
+++ new.tsxEmit3.sourcemap.txt
-@@= skipped -80, +80 lines =@@
- ---
- >>> M.Foo = Foo;
- 1->^^^^
--2 > ^^^^^
--3 > ^^^^^^
--4 > ^
-+2 > ^^
-+3 > ^^^
-+4 > ^^^^^^
-+5 > ^
- 1->
--2 > Foo
--3 > { constructor() { } }
--4 >
-+2 >
-+3 > Foo
-+4 > { constructor() { } }
-+5 >
- 1->Emitted(7, 5) Source(7, 15) + SourceIndex(0)
--2 >Emitted(7, 10) Source(7, 18) + SourceIndex(0)
--3 >Emitted(7, 16) Source(7, 40) + SourceIndex(0)
--4 >Emitted(7, 17) Source(7, 40) + SourceIndex(0)
-+2 >Emitted(7, 7) Source(7, 15) + SourceIndex(0)
-+3 >Emitted(7, 10) Source(7, 18) + SourceIndex(0)
-+4 >Emitted(7, 16) Source(7, 40) + SourceIndex(0)
-+5 >Emitted(7, 17) Source(7, 40) + SourceIndex(0)
- ---
- >>> let S;
- 1 >^^^^
-@@= skipped -65, +68 lines =@@
- ---
- >>> S.Bar = Bar;
- 1->^^^^^^^^
--2 > ^^^^^
--3 > ^^^^^^
--4 > ^
-+2 > ^^
-+3 > ^^^
-+4 > ^^^^^^
-+5 > ^
- 1->
--2 > Bar
--3 > { }
--4 >
-+2 >
-+3 > Bar
-+4 > { }
-+5 >
- 1->Emitted(12, 9) Source(9, 16) + SourceIndex(0)
--2 >Emitted(12, 14) Source(9, 19) + SourceIndex(0)
--3 >Emitted(12, 20) Source(9, 23) + SourceIndex(0)
--4 >Emitted(12, 21) Source(9, 23) + SourceIndex(0)
-+2 >Emitted(12, 11) Source(9, 16) + SourceIndex(0)
-+3 >Emitted(12, 14) Source(9, 19) + SourceIndex(0)
-+4 >Emitted(12, 20) Source(9, 23) + SourceIndex(0)
-+5 >Emitted(12, 21) Source(9, 23) + SourceIndex(0)
- ---
- >>> // Emit Foo
- 1 >^^^^^^^^
-@@= skipped -39, +42 lines =@@
- 3 > ^^
- 4 > ^
- 5 > ^^^
--6 > ^^^
--7 > ^^^^^
--8 > ^^^
--9 > ^^^^^^^^
-+6 > ^^
-+7 > ^
-+8 > ^^^^^
-+9 > ^^
-+10> ^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > S
- 5 >
--6 > S
--7 >
--8 > S
--9 > {
-+6 >
-+7 > S
-+8 >
-+9 >
-+10> S
-+11> {
- > export class Bar { }
- >
- > // Emit Foo
-@@= skipped -24, +28 lines =@@
- 3 >Emitted(15, 8) Source(8, 19) + SourceIndex(0)
- 4 >Emitted(15, 9) Source(8, 20) + SourceIndex(0)
- 5 >Emitted(15, 12) Source(8, 19) + SourceIndex(0)
--6 >Emitted(15, 15) Source(8, 20) + SourceIndex(0)
--7 >Emitted(15, 20) Source(8, 19) + SourceIndex(0)
--8 >Emitted(15, 23) Source(8, 20) + SourceIndex(0)
--9 >Emitted(15, 31) Source(13, 3) + SourceIndex(0)
-+6 >Emitted(15, 14) Source(8, 19) + SourceIndex(0)
-+7 >Emitted(15, 15) Source(8, 20) + SourceIndex(0)
-+8 >Emitted(15, 20) Source(8, 19) + SourceIndex(0)
-+9 >Emitted(15, 22) Source(8, 19) + SourceIndex(0)
-+10>Emitted(15, 23) Source(8, 20) + SourceIndex(0)
-+11>Emitted(15, 31) Source(13, 3) + SourceIndex(0)
- ---
- >>>})(M || (M = {}));
- 1 >
-@@= skipped -63, +65 lines =@@
+@@= skipped -271, +271 lines =@@
---
>>> M.Foo, ;
1->^^^^
@@ -304,57 +194,7 @@
---
>>> })(S = M.S || (M.S = {}));
1->^^^^
-@@= skipped -41, +35 lines =@@
- 3 > ^^
- 4 > ^
- 5 > ^^^
--6 > ^^^
--7 > ^^^^^
--8 > ^^^
--9 > ^^^^^^^^
-+6 > ^^
-+7 > ^
-+8 > ^^^^^
-+9 > ^^
-+10> ^
-+11> ^^^^^^^^
- 1->
- >
- 2 > }
- 3 >
- 4 > S
- 5 >
--6 > S
--7 >
--8 > S
--9 > {
-+6 >
-+7 > S
-+8 >
-+9 >
-+10> S
-+11> {
- > // Emit M.Foo
- > Foo, ;
- >
-@@= skipped -25, +29 lines =@@
- 3 >Emitted(26, 8) Source(20, 19) + SourceIndex(0)
- 4 >Emitted(26, 9) Source(20, 20) + SourceIndex(0)
- 5 >Emitted(26, 12) Source(20, 19) + SourceIndex(0)
--6 >Emitted(26, 15) Source(20, 20) + SourceIndex(0)
--7 >Emitted(26, 20) Source(20, 19) + SourceIndex(0)
--8 >Emitted(26, 23) Source(20, 20) + SourceIndex(0)
--9 >Emitted(26, 31) Source(26, 3) + SourceIndex(0)
-+6 >Emitted(26, 14) Source(20, 19) + SourceIndex(0)
-+7 >Emitted(26, 15) Source(20, 20) + SourceIndex(0)
-+8 >Emitted(26, 20) Source(20, 19) + SourceIndex(0)
-+9 >Emitted(26, 22) Source(20, 19) + SourceIndex(0)
-+10>Emitted(26, 23) Source(20, 20) + SourceIndex(0)
-+11>Emitted(26, 31) Source(26, 3) + SourceIndex(0)
- ---
- >>>})(M || (M = {}));
- 1 >
-@@= skipped -68, +70 lines =@@
+@@= skipped -134, +128 lines =@@
---
>>> M.S.Bar, ;
1->^^^^
diff --git a/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts b/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts
index eee9a38470f..29a150d6e0d 100644
--- a/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts
+++ b/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts
@@ -78,7 +78,7 @@ export declare abstract class Baz {
}
//# sourceMappingURL=class.d.ts.map
//// [class.d.ts.map] ////
-{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["class.ts"],"names":[],"mappings":"AACA,qBAAa,GAAG;;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACH,CAAC,EAAE,MAAM,CAAC;IAEX,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,CAAC,CAAS;IAClB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CAEjB;AAED,8BAAsB,GAAG;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;CAC3B"}
+{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["class.ts"],"names":[],"mappings":"AACA,qBAAa,GAAG;;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACH,CAAC,EAAE,MAAM,CAAC;IAEX,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,CAAC,CAAS;IAClB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CAEjB;AAED,8BAAsB,GAAG;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,IAAI,IAAI;CAC1B"}
//// [Diagnostics reported]
diff --git a/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts.diff b/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts.diff
deleted file mode 100644
index 01cfa8c1b23..00000000000
--- a/testdata/baselines/reference/submodule/transpile/declarationBasicSyntax(declarationMap=true).d.ts.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.transpile/declarationBasicSyntax(declarationMap=true).d.ts
-+++ new.transpile/declarationBasicSyntax(declarationMap=true).d.ts
-@@= skipped -77, +77 lines =@@
- }
- //# sourceMappingURL=class.d.ts.map
- //// [class.d.ts.map] ////
--{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["class.ts"],"names":[],"mappings":"AACA,qBAAa,GAAG;;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACH,CAAC,EAAE,MAAM,CAAC;IAEX,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,CAAC,CAAS;IAClB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CAEjB;AAED,8BAAsB,GAAG;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,IAAI,IAAI;CAC1B"}
-+{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["class.ts"],"names":[],"mappings":"AACA,qBAAa,GAAG;;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACH,CAAC,EAAE,MAAM,CAAC;IAEX,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,CAAC,CAAS;IAClB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CAEjB;AAED,8BAAsB,GAAG;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;CAC3B"}
-
-
- //// [Diagnostics reported]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts b/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts
index c1259abf658..3c81cf66f0e 100644
--- a/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts
+++ b/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts
@@ -96,7 +96,7 @@ export declare const D: {
[x: string]: number;
[x: number]: number;
[presentNs.a]: number;
- [SymbolConstructor.toStringTag]: number;
+ [aliasing.toStringTag]: number;
1: number;
"2": number;
};
@@ -122,15 +122,13 @@ declarationComputedPropertyNames.ts(46,5): error TS9038: Computed property names
declarationComputedPropertyNames.ts(50,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(51,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(52,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-declarationComputedPropertyNames.ts(53,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-declarationComputedPropertyNames.ts(54,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(55,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(56,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(59,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
declarationComputedPropertyNames.ts(60,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-==== declarationComputedPropertyNames.ts (24 errors) ====
+==== declarationComputedPropertyNames.ts (22 errors) ====
export namespace presentNs {
export const a = Symbol();
~
@@ -225,13 +223,7 @@ declarationComputedPropertyNames.ts(60,5): error TS9038: Computed property names
!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
!!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
[Symbol.iterator]: 1,
- ~~~~~~~~~~~~~~~~~
-!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-!!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
[globalThis.Symbol.toStringTag]: 1,
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-!!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
[(globalThis.Symbol).unscopables]: 1,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
diff --git a/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts.diff b/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts.diff
deleted file mode 100644
index c41b72bbb80..00000000000
--- a/testdata/baselines/reference/submodule/transpile/declarationComputedPropertyNames.d.ts.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- old.transpile/declarationComputedPropertyNames.d.ts
-+++ new.transpile/declarationComputedPropertyNames.d.ts
-@@= skipped -95, +95 lines =@@
- [x: string]: number;
- [x: number]: number;
- [presentNs.a]: number;
-- [aliasing.toStringTag]: number;
-+ [SymbolConstructor.toStringTag]: number;
- 1: number;
- "2": number;
- };
-@@= skipped -26, +26 lines =@@
- declarationComputedPropertyNames.ts(50,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(51,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(52,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-+declarationComputedPropertyNames.ts(53,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-+declarationComputedPropertyNames.ts(54,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(55,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(56,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(59,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- declarationComputedPropertyNames.ts(60,5): error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-
-
--==== declarationComputedPropertyNames.ts (22 errors) ====
-+==== declarationComputedPropertyNames.ts (24 errors) ====
- export namespace presentNs {
- export const a = Symbol();
- ~
-@@= skipped -101, +103 lines =@@
- !!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
- !!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
- [Symbol.iterator]: 1,
-+ ~~~~~~~~~~~~~~~~~
-+!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-+!!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
- [globalThis.Symbol.toStringTag]: 1,
-+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-+!!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
-+!!! related TS9027 declarationComputedPropertyNames.ts:49:14: Add a type annotation to the variable D.
- [(globalThis.Symbol).unscopables]: 1,
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- !!! error TS9038: Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts b/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts
index c01d9c948c5..9a8ae299582 100644
--- a/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts
+++ b/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts
@@ -21,17 +21,16 @@ export declare function create(): any;
//// [Diagnostics reported]
-consumes.ts(3,12): error TS9013: Expression type can't be inferred with --isolatedDeclarations.
+consumes.ts(2,17): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
==== consumes.ts (1 errors) ====
import {A} from "./defines.js";
export function create() {
- return new A();
- ~~~~~~~
-!!! error TS9013: Expression type can't be inferred with --isolatedDeclarations.
+ ~~~~~~
+!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9031 consumes.ts:2:17: Add a return type to the function declaration.
-!!! related TS9035 consumes.ts:3:12: Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.
+ return new A();
}
//// [exposes.d.ts] ////
export declare const value: any;
diff --git a/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts.diff b/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts.diff
deleted file mode 100644
index b3b7bb96627..00000000000
--- a/testdata/baselines/reference/submodule/transpile/declarationCrossFileInferences.d.ts.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.transpile/declarationCrossFileInferences.d.ts
-+++ new.transpile/declarationCrossFileInferences.d.ts
-@@= skipped -20, +20 lines =@@
-
-
- //// [Diagnostics reported]
--consumes.ts(2,17): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
-+consumes.ts(3,12): error TS9013: Expression type can't be inferred with --isolatedDeclarations.
-
-
- ==== consumes.ts (1 errors) ====
- import {A} from "./defines.js";
- export function create() {
-- ~~~~~~
--!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
--!!! related TS9031 consumes.ts:2:17: Add a return type to the function declaration.
- return new A();
-+ ~~~~~~~
-+!!! error TS9013: Expression type can't be inferred with --isolatedDeclarations.
-+!!! related TS9031 consumes.ts:2:17: Add a return type to the function declaration.
-+!!! related TS9035 consumes.ts:3:12: Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.
- }
- //// [exposes.d.ts] ////
- export declare const value: any;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts b/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts
index 3aacba0baa2..af1cb8016aa 100644
--- a/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts
+++ b/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts
@@ -140,6 +140,7 @@ export {};
//// [Diagnostics reported]
+fnDecl.ts(12,27): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
fnDecl.ts(16,36): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
fnDecl.ts(20,26): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
fnDecl.ts(24,56): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
@@ -147,9 +148,11 @@ fnDecl.ts(28,46): error TS9025: Declaration emit for this parameter requires imp
fnDecl.ts(32,45): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
fnDecl.ts(37,47): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
fnDecl.ts(41,37): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
+fnDecl.ts(45,35): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
+fnDecl.ts(51,5): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
-==== fnDecl.ts (7 errors) ====
+==== fnDecl.ts (10 errors) ====
type T = number[]
export function fnDeclBasic1(p: number[] | string[] | [T] = [], rParam: string): void { };
export function fnDeclBasic2(p: (n: T) => T = () => null!, rParam: string): void { };
@@ -162,6 +165,9 @@ fnDecl.ts(41,37): error TS9025: Declaration emit for this parameter requires imp
export function fnDeclHasUndefined(p: T | undefined = [], rParam: string): void { };
export function fnDeclBad(p: T = [], rParam: string): void { };
+ ~~~~~~~~~
+!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
+!!! related TS9028 fnDecl.ts:12:27: Add a type annotation to the parameter p.
export const fnExprOk1 = function (array: number[] = [], rParam: string): void { };
export const fnExprOk2 = function (array: T | undefined = [], rParam: string): void { };
@@ -216,12 +222,18 @@ fnDecl.ts(41,37): error TS9025: Declaration emit for this parameter requires imp
export class InClassMethodOk1 { o(array: number[] = [], rParam: string): void { } };
export class InClassMethodOk2 { o(array: T | undefined = [], rParam: string): void { } };
export class InClassMethodBad { o(array: T = [], rParam: string): void { } };
+ ~~~~~~~~~~~~~
+!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
+!!! related TS9028 fnDecl.ts:45:35: Add a type annotation to the parameter array.
// https://github.com/microsoft/TypeScript/issues/60976
class Bar {}
export class ClsWithRequiredInitializedParameter {
constructor(
private arr: Bar = new Bar(),
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
+!!! related TS9028 fnDecl.ts:51:5: Add a type annotation to the parameter arr.
private bool: boolean,
) {}
}
diff --git a/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts.diff b/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts.diff
deleted file mode 100644
index ca84e1dc0bc..00000000000
--- a/testdata/baselines/reference/submodule/transpile/declarationFunctionDeclarations.d.ts.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- old.transpile/declarationFunctionDeclarations.d.ts
-+++ new.transpile/declarationFunctionDeclarations.d.ts
-@@= skipped -139, +139 lines =@@
-
-
- //// [Diagnostics reported]
--fnDecl.ts(12,27): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
- fnDecl.ts(16,36): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
- fnDecl.ts(20,26): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
- fnDecl.ts(24,56): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
-@@= skipped -8, +7 lines =@@
- fnDecl.ts(32,45): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
- fnDecl.ts(37,47): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
- fnDecl.ts(41,37): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--fnDecl.ts(45,35): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--fnDecl.ts(51,5): error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--
--
--==== fnDecl.ts (10 errors) ====
-+
-+
-+==== fnDecl.ts (7 errors) ====
- type T = number[]
- export function fnDeclBasic1(p: number[] | string[] | [T] = [], rParam: string): void { };
- export function fnDeclBasic2(p: (n: T) => T = () => null!, rParam: string): void { };
-@@= skipped -17, +15 lines =@@
-
- export function fnDeclHasUndefined(p: T | undefined = [], rParam: string): void { };
- export function fnDeclBad(p: T = [], rParam: string): void { };
-- ~~~~~~~~~
--!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--!!! related TS9028 fnDecl.ts:12:27: Add a type annotation to the parameter p.
-
- export const fnExprOk1 = function (array: number[] = [], rParam: string): void { };
- export const fnExprOk2 = function (array: T | undefined = [], rParam: string): void { };
-@@= skipped -57, +54 lines =@@
- export class InClassMethodOk1 { o(array: number[] = [], rParam: string): void { } };
- export class InClassMethodOk2 { o(array: T | undefined = [], rParam: string): void { } };
- export class InClassMethodBad { o(array: T = [], rParam: string): void { } };
-- ~~~~~~~~~~~~~
--!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--!!! related TS9028 fnDecl.ts:45:35: Add a type annotation to the parameter array.
-
- // https://github.com/microsoft/TypeScript/issues/60976
- class Bar {}
- export class ClsWithRequiredInitializedParameter {
- constructor(
- private arr: Bar = new Bar(),
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--!!! error TS9025: Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.
--!!! related TS9028 fnDecl.ts:51:5: Add a type annotation to the parameter arr.
- private bool: boolean,
- ) {}
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js b/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js
index af74c6acd50..196e30479ce 100644
--- a/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js
+++ b/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js
@@ -114,7 +114,7 @@ finally {
if (result_1)
await result_1;
}
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFYixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Ozs7SUFIUCxDQUFDLGtDQUFHLFNBQVMsUUFBQSxDQUFDO0lBRVIsQ0FBQyxrQ0FBRyxTQUFTLE9BQUEsQ0FBQyJ9
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFYixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Ozs7SUFIUCxtQ0FBSSxTQUFTLFFBQUEsQ0FBQztJQUVSLG1DQUFJLFNBQVMsT0FBQSxDQUFDIn0=
//// [interface.js] ////
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -144,7 +144,7 @@ export var ns;
nested.inner = internal;
})(nested = ns.nested || (ns.nested = {}));
})(ns || (ns = {}));
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxFQUFFLENBT2xCO0FBUEQsV0FBaUIsRUFBRTtJQUNmLElBQVUsUUFBUSxDQUVqQjtJQUZELFdBQVUsUUFBUTtRQUNkLE1BQWEsR0FBRztTQUFHO1FBQU4sU0FBQSxHQUFHLE1BQUcsQ0FBQTtJQUN2QixDQUFDLEVBRlMsUUFBUSxLQUFSLFFBQVEsUUFFakI7SUFDRCxJQUFpQixNQUFNLENBRXRCO0lBRkQsV0FBaUIsTUFBTTtRQUNMLE9BQUEsS0FBSyxHQUFHLFFBQVMsQ0FBQTtJQUNuQyxDQUFDLEVBRmdCLE1BQU0sR0FBTixHQUFBLE1BQU0sS0FBTixHQUFBLE1BQU0sUUFFdEI7QUFDTCxDQUFDLEVBUGdCLEVBQUUsS0FBRixFQUFFLFFBT2xCIn0=
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxFQUFFLENBT2xCO0FBUEQsV0FBaUIsRUFBRTtJQUNmLElBQVUsUUFBUSxDQUVqQjtJQUZELFdBQVUsUUFBUTtRQUNkLE1BQWEsR0FBRztTQUFHO1FBQU4sWUFBRyxNQUFHLENBQUE7SUFDdkIsQ0FBQyxFQUZTLFFBQVEsS0FBUixRQUFRLFFBRWpCO0lBQ0QsSUFBaUIsTUFBTSxDQUV0QjtJQUZELFdBQWlCLE1BQU07UUFDTCxZQUFLLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUMsRUFGZ0IsTUFBTSxHQUFOLFNBQU0sS0FBTixTQUFNLFFBRXRCO0FBQ0wsQ0FBQyxFQVBnQixFQUFFLEtBQUYsRUFBRSxRQU9sQiJ9
//// [alias.js] ////
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
diff --git a/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js.diff b/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js.diff
deleted file mode 100644
index baa91e07113..00000000000
--- a/testdata/baselines/reference/submodule/transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js
-+++ new.transpile/jsWithInlineSourceMapBasic(inlineSourceMap=true).js
-@@= skipped -113, +113 lines =@@
- if (result_1)
- await result_1;
- }
--//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFYixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Ozs7SUFIUCxtQ0FBSSxTQUFTLFFBQUEsQ0FBQztJQUVSLG1DQUFJLFNBQVMsT0FBQSxDQUFDIn0=
-+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFYixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Ozs7SUFIUCxDQUFDLGtDQUFHLFNBQVMsUUFBQSxDQUFDO0lBRVIsQ0FBQyxrQ0FBRyxTQUFTLE9BQUEsQ0FBQyJ9
- //// [interface.js] ////
- export {};
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
-@@= skipped -30, +30 lines =@@
- nested.inner = internal;
- })(nested = ns.nested || (ns.nested = {}));
- })(ns || (ns = {}));
--//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxFQUFFLENBT2xCO0FBUEQsV0FBaUIsRUFBRTtJQUNmLElBQVUsUUFBUSxDQUVqQjtJQUZELFdBQVUsUUFBUTtRQUNkLE1BQWEsR0FBRztTQUFHO1FBQU4sWUFBRyxNQUFHLENBQUE7SUFDdkIsQ0FBQyxFQUZTLFFBQVEsS0FBUixRQUFRLFFBRWpCO0lBQ0QsSUFBaUIsTUFBTSxDQUV0QjtJQUZELFdBQWlCLE1BQU07UUFDTCxZQUFLLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUMsRUFGZ0IsTUFBTSxHQUFOLFNBQU0sS0FBTixTQUFNLFFBRXRCO0FBQ0wsQ0FBQyxFQVBnQixFQUFFLEtBQUYsRUFBRSxRQU9sQiJ9
-+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxFQUFFLENBT2xCO0FBUEQsV0FBaUIsRUFBRTtJQUNmLElBQVUsUUFBUSxDQUVqQjtJQUZELFdBQVUsUUFBUTtRQUNkLE1BQWEsR0FBRztTQUFHO1FBQU4sU0FBQSxHQUFHLE1BQUcsQ0FBQTtJQUN2QixDQUFDLEVBRlMsUUFBUSxLQUFSLFFBQVEsUUFFakI7SUFDRCxJQUFpQixNQUFNLENBRXRCO0lBRkQsV0FBaUIsTUFBTTtRQUNMLE9BQUEsS0FBSyxHQUFHLFFBQVMsQ0FBQTtJQUNuQyxDQUFDLEVBRmdCLE1BQU0sR0FBTixHQUFBLE1BQU0sS0FBTixHQUFBLE1BQU0sUUFFdEI7QUFDTCxDQUFDLEVBUGdCLEVBQUUsS0FBRixFQUFFLFFBT2xCIn0=
- //// [alias.js] ////
- export {};
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js b/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js
index b9c4b97ab02..c0f0e49c712 100644
--- a/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js
+++ b/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js
@@ -116,7 +116,7 @@ finally {
}
//# sourceMappingURL=variables.js.map
//// [variables.js.map] ////
-{"version":3,"file":"variables.js","sourceRoot":"","sources":["variables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjB,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,OAAO,EAAE,CAAC,EAAE,CAAC;;;;IAHP,CAAC,kCAAG,SAAS,QAAA,CAAC;IAER,CAAC,kCAAG,SAAS,OAAA,CAAC"}
+{"version":3,"file":"variables.js","sourceRoot":"","sources":["variables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjB,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,OAAO,EAAE,CAAC,EAAE,CAAC;;;;IAHP,mCAAI,SAAS,QAAA,CAAC;IAER,mCAAI,SAAS,OAAA,CAAC"}
//// [interface.js] ////
export {};
//# sourceMappingURL=interface.js.map
@@ -152,7 +152,7 @@ export var ns;
})(ns || (ns = {}));
//# sourceMappingURL=namespace.js.map
//// [namespace.js.map] ////
-{"version":3,"file":"namespace.js","sourceRoot":"","sources":["namespace.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,EAAE,CAOlB;AAPD,WAAiB,EAAE;IACf,IAAU,QAAQ,CAEjB;IAFD,WAAU,QAAQ;QACd,MAAa,GAAG;SAAG;QAAN,SAAA,GAAG,MAAG,CAAA;IACvB,CAAC,EAFS,QAAQ,KAAR,QAAQ,QAEjB;IACD,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACL,OAAA,KAAK,GAAG,QAAS,CAAA;IACnC,CAAC,EAFgB,MAAM,GAAN,GAAA,MAAM,KAAN,GAAA,MAAM,QAEtB;AACL,CAAC,EAPgB,EAAE,KAAF,EAAE,QAOlB"}
+{"version":3,"file":"namespace.js","sourceRoot":"","sources":["namespace.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,EAAE,CAOlB;AAPD,WAAiB,EAAE;IACf,IAAU,QAAQ,CAEjB;IAFD,WAAU,QAAQ;QACd,MAAa,GAAG;SAAG;QAAN,YAAG,MAAG,CAAA;IACvB,CAAC,EAFS,QAAQ,KAAR,QAAQ,QAEjB;IACD,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACL,YAAK,GAAG,QAAQ,CAAC;IACnC,CAAC,EAFgB,MAAM,GAAN,SAAM,KAAN,SAAM,QAEtB;AACL,CAAC,EAPgB,EAAE,KAAF,EAAE,QAOlB"}
//// [alias.js] ////
export {};
//# sourceMappingURL=alias.js.map
diff --git a/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js.diff b/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js.diff
deleted file mode 100644
index 589aa7b92d1..00000000000
--- a/testdata/baselines/reference/submodule/transpile/jsWithSourceMapBasic(sourceMap=true).js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.transpile/jsWithSourceMapBasic(sourceMap=true).js
-+++ new.transpile/jsWithSourceMapBasic(sourceMap=true).js
-@@= skipped -115, +115 lines =@@
- }
- //# sourceMappingURL=variables.js.map
- //// [variables.js.map] ////
--{"version":3,"file":"variables.js","sourceRoot":"","sources":["variables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjB,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,OAAO,EAAE,CAAC,EAAE,CAAC;;;;IAHP,mCAAI,SAAS,QAAA,CAAC;IAER,mCAAI,SAAS,OAAA,CAAC"}
-+{"version":3,"file":"variables.js","sourceRoot":"","sources":["variables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjB,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,OAAO,EAAE,CAAC,EAAE,CAAC;;;;IAHP,CAAC,kCAAG,SAAS,QAAA,CAAC;IAER,CAAC,kCAAG,SAAS,OAAA,CAAC"}
- //// [interface.js] ////
- export {};
- //# sourceMappingURL=interface.js.map
-@@= skipped -36, +36 lines =@@
- })(ns || (ns = {}));
- //# sourceMappingURL=namespace.js.map
- //// [namespace.js.map] ////
--{"version":3,"file":"namespace.js","sourceRoot":"","sources":["namespace.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,EAAE,CAOlB;AAPD,WAAiB,EAAE;IACf,IAAU,QAAQ,CAEjB;IAFD,WAAU,QAAQ;QACd,MAAa,GAAG;SAAG;QAAN,YAAG,MAAG,CAAA;IACvB,CAAC,EAFS,QAAQ,KAAR,QAAQ,QAEjB;IACD,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACL,YAAK,GAAG,QAAQ,CAAC;IACnC,CAAC,EAFgB,MAAM,GAAN,SAAM,KAAN,SAAM,QAEtB;AACL,CAAC,EAPgB,EAAE,KAAF,EAAE,QAOlB"}
-+{"version":3,"file":"namespace.js","sourceRoot":"","sources":["namespace.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,EAAE,CAOlB;AAPD,WAAiB,EAAE;IACf,IAAU,QAAQ,CAEjB;IAFD,WAAU,QAAQ;QACd,MAAa,GAAG;SAAG;QAAN,SAAA,GAAG,MAAG,CAAA;IACvB,CAAC,EAFS,QAAQ,KAAR,QAAQ,QAEjB;IACD,IAAiB,MAAM,CAEtB;IAFD,WAAiB,MAAM;QACL,OAAA,KAAK,GAAG,QAAS,CAAA;IACnC,CAAC,EAFgB,MAAM,GAAN,GAAA,MAAM,KAAN,GAAA,MAAM,QAEtB;AACL,CAAC,EAPgB,EAAE,KAAF,EAAE,QAOlB"}
- //// [alias.js] ////
- export {};
- //# sourceMappingURL=alias.js.map
\ No newline at end of file
diff --git a/testdata/tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts b/testdata/tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts
new file mode 100644
index 00000000000..d7c71467206
--- /dev/null
+++ b/testdata/tests/cases/compiler/isolatedDeclarationsShadowedSymbolComputedName.ts
@@ -0,0 +1,30 @@
+// @declaration: true
+// @emitDeclarationOnly: true
+// @isolatedDeclarations: true
+// @target: esnext
+
+// @filename: global.ts
+export const globalSymbol = {
+ [Symbol.iterator]: 1,
+};
+
+// @filename: shadowed.ts
+const Symbol = {
+ iterator: "iterator",
+};
+
+export const shadowedSymbol = {
+ [Symbol.iterator]: 1,
+};
+
+// @filename: symbols.ts
+export const symbolValue = {
+ iterator: "iterator",
+};
+
+// @filename: aliased.ts
+import { symbolValue as Symbol } from "./symbols.js";
+
+export const aliasedSymbol = {
+ [Symbol.iterator]: 1,
+};