@paulirish/trace_engine 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.tmp/tsbuildinfo/analyze-trace.d.mts +18 -0
  2. package/.tmp/tsbuildinfo/analyze-trace.d.mts.map +1 -0
  3. package/.tmp/tsbuildinfo/models/trace/LanternComputationData.d.ts +46 -0
  4. package/.tmp/tsbuildinfo/models/trace/LanternComputationData.d.ts.map +1 -0
  5. package/.tmp/tsbuildinfo/models/trace/LegacyTracingModel.d.ts +2 -0
  6. package/.tmp/tsbuildinfo/models/trace/LegacyTracingModel.d.ts.map +1 -0
  7. package/.tmp/tsbuildinfo/models/trace/ModelImpl.d.ts +72 -0
  8. package/.tmp/tsbuildinfo/models/trace/ModelImpl.d.ts.map +1 -0
  9. package/.tmp/tsbuildinfo/models/trace/Processor.d.ts +25 -0
  10. package/.tmp/tsbuildinfo/models/trace/Processor.d.ts.map +1 -0
  11. package/.tmp/tsbuildinfo/models/trace/TracingManager.d.ts +2 -0
  12. package/.tmp/tsbuildinfo/models/trace/TracingManager.d.ts.map +1 -0
  13. package/.tmp/tsbuildinfo/models/trace/trace.d.ts +13 -0
  14. package/.tmp/tsbuildinfo/models/trace/trace.d.ts.map +1 -0
  15. package/.tmp/tsbuildinfo/test/test-trace-engine.d.mts +2 -0
  16. package/.tmp/tsbuildinfo/test/test-trace-engine.d.mts.map +1 -0
  17. package/.tmp/tsbuildinfo/third_party/third-party-web/third-party-web.d.ts +3 -0
  18. package/.tmp/tsbuildinfo/third_party/third-party-web/third-party-web.d.ts.map +1 -0
  19. package/.tmp/tsbuildinfo/tsconfig.tsbuildinfo +1 -0
  20. package/analyze-trace.mjs +47 -11
  21. package/generated/protocol.d.ts +31 -2
  22. package/models/trace/Processor.js +4 -1
  23. package/models/trace/Processor.js.map +1 -1
  24. package/models/trace/extras/ThirdParties.d.ts +23 -0
  25. package/models/trace/extras/ThirdParties.js +152 -0
  26. package/models/trace/extras/ThirdParties.js.map +1 -0
  27. package/models/trace/extras/extras-tsconfig.json +1 -0
  28. package/models/trace/extras/extras.d.ts +4 -1
  29. package/models/trace/extras/extras.js +4 -1
  30. package/models/trace/extras/extras.js.map +1 -1
  31. package/models/trace/handlers/FramesHandler.d.ts +11 -4
  32. package/models/trace/handlers/FramesHandler.js +8 -1
  33. package/models/trace/handlers/FramesHandler.js.map +1 -1
  34. package/models/trace/handlers/InitiatorsHandler.js +11 -0
  35. package/models/trace/handlers/InitiatorsHandler.js.map +1 -1
  36. package/models/trace/handlers/LayoutShiftsHandler.d.ts +2 -0
  37. package/models/trace/handlers/LayoutShiftsHandler.js +14 -0
  38. package/models/trace/handlers/LayoutShiftsHandler.js.map +1 -1
  39. package/models/trace/helpers/Timing.d.ts +2 -0
  40. package/models/trace/helpers/Timing.js +10 -0
  41. package/models/trace/helpers/Timing.js.map +1 -1
  42. package/models/trace/helpers/TreeHelpers.d.ts +26 -15
  43. package/models/trace/helpers/TreeHelpers.js +113 -53
  44. package/models/trace/helpers/TreeHelpers.js.map +1 -1
  45. package/models/trace/helpers/helpers-tsconfig.json +3 -0
  46. package/models/trace/insights/CumulativeLayoutShift.d.ts +2 -0
  47. package/models/trace/insights/CumulativeLayoutShift.js +52 -18
  48. package/models/trace/insights/CumulativeLayoutShift.js.map +1 -1
  49. package/models/trace/insights/ThirdPartyWeb.d.ts +7 -12
  50. package/models/trace/insights/ThirdPartyWeb.js +3 -135
  51. package/models/trace/insights/ThirdPartyWeb.js.map +1 -1
  52. package/models/trace/lantern/core/NetworkAnalyzer.d.ts +3 -3
  53. package/models/trace/lantern/core/NetworkAnalyzer.js +6 -3
  54. package/models/trace/lantern/core/NetworkAnalyzer.js.map +1 -1
  55. package/models/trace/lantern/simulation/Simulator.js +1 -1
  56. package/models/trace/lantern/simulation/Simulator.js.map +1 -1
  57. package/models/trace/types/TraceEvents.d.ts +50 -0
  58. package/models/trace/types/TraceEvents.js +12 -0
  59. package/models/trace/types/TraceEvents.js.map +1 -1
  60. package/package.json +7 -3
  61. package/test/test-trace-engine.mjs +14 -6
  62. package/third_party/third-party-web/third-party-web.d.ts +1 -0
  63. package/tsconfig.json +29 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @param {Trace.Types.Events.Event[]} traceEvents
3
+ * @return {Promise<{parsedTrace: Trace.Handlers.Types.ParsedTrace, insights: Trace.Insights.Types.TraceInsightSets, model: Trace.TraceModel.Model}>}
4
+ */
5
+ export function analyzeEvents(traceEvents: Trace.Types.Events.Event[]): Promise<{
6
+ parsedTrace: Trace.Handlers.Types.ParsedTrace;
7
+ insights: Trace.Insights.Types.TraceInsightSets;
8
+ model: Trace.TraceModel.Model;
9
+ }>;
10
+ /**
11
+ * @param {string} filename
12
+ * @returns {ReturnType<analyzeEvents>}
13
+ */
14
+ export function analyzeTrace(filename: string): ReturnType<typeof analyzeEvents>;
15
+ export function polyfillDOMRect(): void;
16
+ export type Trace = typeof Trace;
17
+ import * as Trace from './models/trace/trace.js';
18
+ //# sourceMappingURL=analyze-trace.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-trace.d.mts","sourceRoot":"","sources":["../../analyze-trace.mjs"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,2CAHW,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GACzB,OAAO,CAAC;IAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAA;CAAC,CAAC,CAenJ;AAED;;;GAGG;AACH,uCAHW,MAAM,GACJ,UAAU,sBAAe,CAKrC;AAgDD,wCAqIC;oBA3Na,YAAiC;uBAQxB,yBAAyB"}
@@ -0,0 +1,46 @@
1
+ export function createProcessedNavigation(parsedTrace: any, frameId: any, navigationId: any): {
2
+ timestamps: {
3
+ firstContentfulPaint: any;
4
+ largestContentfulPaint: any;
5
+ };
6
+ };
7
+ export function createNetworkRequests(trace: any, parsedTrace: any, startTime?: number, endTime?: number): {
8
+ rawRequest: any;
9
+ requestId: any;
10
+ connectionId: any;
11
+ connectionReused: any;
12
+ url: any;
13
+ protocol: any;
14
+ parsedURL: {
15
+ scheme: any;
16
+ host: any;
17
+ securityOrigin: any;
18
+ };
19
+ documentURL: any;
20
+ rendererStartTime: number;
21
+ networkRequestTime: number;
22
+ responseHeadersEndTime: number;
23
+ networkEndTime: number;
24
+ transferSize: any;
25
+ resourceSize: any;
26
+ fromDiskCache: any;
27
+ fromMemoryCache: any;
28
+ isLinkPreload: any;
29
+ finished: any;
30
+ failed: any;
31
+ statusCode: any;
32
+ initiator: any;
33
+ timing: any;
34
+ resourceType: any;
35
+ mimeType: any;
36
+ priority: any;
37
+ frameId: any;
38
+ fromWorker: boolean;
39
+ redirects: undefined;
40
+ redirectSource: undefined;
41
+ redirectDestination: undefined;
42
+ initiatorRequest: undefined;
43
+ }[];
44
+ export function createGraph(requests: any, trace: any, parsedTrace: any, url: any): Lantern.Graph.Node;
45
+ import * as Lantern from './lantern/lantern.js';
46
+ //# sourceMappingURL=LanternComputationData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanternComputationData.d.ts","sourceRoot":"","sources":["../../../../models/trace/LanternComputationData.js"],"names":[],"mappings":"AAKA;;;;;EA6BC;AA2MD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFC;AA+BD,uGAgBC;yBAxWwB,sBAAsB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=LegacyTracingModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyTracingModel.d.ts","sourceRoot":"","sources":["../../../../models/trace/LegacyTracingModel.js"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ export function isModelUpdateDataComplete(eventData: any): boolean;
2
+ export function isModelUpdateDataProgress(eventData: any): boolean;
3
+ /**
4
+ * The Model is responsible for parsing arrays of raw trace events and storing the
5
+ * resulting data. It can store multiple traces at once, and can return the data for
6
+ * any of them.
7
+ *
8
+ * Most uses of this class should be through `createWithAllHandlers`, but
9
+ * `createWithSubsetOfHandlers` can be used to run just some handlers.
10
+ **/
11
+ export class Model extends EventTarget {
12
+ static createWithAllHandlers(config: any): Model;
13
+ /**
14
+ * Runs only the provided handlers.
15
+ *
16
+ * Callers must ensure they are providing all dependant handlers (although Meta is included automatically),
17
+ * and must know that the result of `.parsedTrace` will be limited to the handlers provided, even though
18
+ * the type won't reflect that.
19
+ */
20
+ static createWithSubsetOfHandlers(traceHandlers: any, config: any): Model;
21
+ constructor(handlers: any, config: any);
22
+ /**
23
+ * Parses an array of trace events into a structured object containing all the
24
+ * information parsed by the trace handlers.
25
+ * You can `await` this function to pause execution until parsing is complete,
26
+ * or instead rely on the `ModuleUpdateEvent` that is dispatched when the
27
+ * parsing is finished.
28
+ *
29
+ * Once parsed, you then have to call the `parsedTrace` method, providing an
30
+ * index of the trace you want to have the data for. This is because any model
31
+ * can store a number of traces. Each trace is given an index, which starts at 0
32
+ * and increments by one as a new trace is parsed.
33
+ *
34
+ * @example
35
+ * // Awaiting the parse method() to block until parsing complete
36
+ * await this.traceModel.parse(events);
37
+ * const data = this.traceModel.parsedTrace(0)
38
+ *
39
+ * @example
40
+ * // Using an event listener to be notified when tracing is complete.
41
+ * this.traceModel.addEventListener(Trace.ModelUpdateEvent.eventName, (event) => {
42
+ * if(event.data.data === 'done') {
43
+ * // trace complete
44
+ * const data = this.traceModel.parsedTrace(0);
45
+ * }
46
+ * });
47
+ * void this.traceModel.parse(events);
48
+ **/
49
+ parse(traceEvents: any, config: any): Promise<void>;
50
+ lastTraceIndex(): number;
51
+ /**
52
+ * Returns the parsed trace data indexed by the order in which it was stored.
53
+ * If no index is given, the last stored parsed data is returned.
54
+ */
55
+ parsedTrace(index?: number): any;
56
+ traceInsights(index?: number): any;
57
+ metadata(index?: number): any;
58
+ overrideModifications(index: any, newModifications: any): void;
59
+ rawTraceEvents(index?: number): any;
60
+ syntheticTraceEventsManager(index?: number): any;
61
+ size(): number;
62
+ deleteTraceByIndex(recordingIndex: any): void;
63
+ getRecordingsAvailable(): any[];
64
+ resetProcessor(): void;
65
+ #private;
66
+ }
67
+ export class ModelUpdateEvent extends Event {
68
+ static eventName: string;
69
+ constructor(data: any);
70
+ data: any;
71
+ }
72
+ //# sourceMappingURL=ModelImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelImpl.d.ts","sourceRoot":"","sources":["../../../../models/trace/ModelImpl.js"],"names":[],"mappings":"AAkLA,mEAEC;AACD,mEAEC;AA/KD;;;;;;;IAOI;AACJ;IAQI,iDAEC;IACD;;;;;;OAMG;IACH,0EAEC;IACD,wCAMC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;QA0BI;IACJ,oDAyCC;IAiBD,yBAEC;IACD;;;OAGG;IACH,iCAEC;IACD,mCAEC;IACD,8BAEC;IACD,+DAIC;IACD,oCAEC;IACD,iDAEC;IACD,eAEC;IACD,8CAGC;IACD,gCAEC;IACD,uBAEC;;CACJ;AACD;IAEI,yBAAiC;IACjC,uBAGC;IALD,UAAK;CAMR"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Some Handlers need data provided by others. Dependencies of a handler handler are
3
+ * declared in the `deps` field.
4
+ * @returns A map from trace event handler name to trace event hander whose entries
5
+ * iterate in such a way that each handler is visited after its dependencies.
6
+ */
7
+ export function sortHandlers(traceHandlers: any): Map<any, any>;
8
+ export class TraceParseProgressEvent extends Event {
9
+ static eventName: string;
10
+ constructor(data: any, init?: {
11
+ bubbles: boolean;
12
+ });
13
+ data: any;
14
+ }
15
+ export class TraceProcessor extends EventTarget {
16
+ static createWithAllHandlers(): TraceProcessor;
17
+ static getEnabledInsightRunners(parsedTrace: any): {};
18
+ constructor(traceHandlers: any, modelConfiguration: any);
19
+ reset(): void;
20
+ parse(traceEvents: any, options: any): Promise<void>;
21
+ get parsedTrace(): null;
22
+ get insights(): null;
23
+ #private;
24
+ }
25
+ //# sourceMappingURL=Processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Processor.d.ts","sourceRoot":"","sources":["../../../../models/trace/Processor.js"],"names":[],"mappings":"AAuYA;;;;;GAKG;AACH,gEAgCC;AApaD;IAEI,yBAAwC;IACxC;;OAGC;IALD,UAAK;CAMR;AAQD;IAQI,+CAEC;IACD,sDAUC;IACD,yDAWC;IA6CD,cAWC;IACD,qDAgBC;IAmFD,wBAKC;IACD,qBAKC;;CAsKJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TracingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TracingManager.d.ts","sourceRoot":"","sources":["../../../../models/trace/TracingManager.js"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import * as Extras from './extras/extras.js';
2
+ import * as Handlers from './handlers/handlers.js';
3
+ import * as Helpers from './helpers/helpers.js';
4
+ import * as Insights from './insights/insights.js';
5
+ import * as Lantern from './lantern/lantern.js';
6
+ import * as LanternComputationData from './LanternComputationData.js';
7
+ import * as Processor from './Processor.js';
8
+ import * as RootCauses from './root-causes/root-causes.js';
9
+ import * as TraceModel from './ModelImpl.js';
10
+ import * as TracingManager from './TracingManager.js';
11
+ import * as Types from './types/types.js';
12
+ export { Extras, Handlers, Helpers, Insights, Lantern, LanternComputationData, Processor, RootCauses, TraceModel, TracingManager, Types };
13
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../../models/trace/trace.js"],"names":[],"mappings":"wBAGwB,oBAAoB;0BAClB,wBAAwB;yBACzB,sBAAsB;0BACrB,wBAAwB;yBACzB,sBAAsB;wCACP,6BAA6B;2BAE1C,gBAAgB;4BACf,8BAA8B;4BAF9B,gBAAgB;gCAGZ,qBAAqB;uBAC9B,kBAAkB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-trace-engine.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-trace-engine.d.mts","sourceRoot":"","sources":["../../../test/test-trace-engine.mjs"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ThirdPartyWeb };
2
+ import ThirdPartyWeb from 'third-party-web';
3
+ //# sourceMappingURL=third-party-web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"third-party-web.d.ts","sourceRoot":"","sources":["../../../../third_party/third-party-web/third-party-web.js"],"names":[],"mappings":";0BAA0B,iBAAiB"}
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/third-party-web/lib/index.d.ts","../../third_party/third-party-web/third-party-web.js","../../models/trace/types/configuration.d.ts","../../generated/protocol.d.ts","../../models/trace/types/timing.d.ts","../../models/trace/types/traceevents.d.ts","../../models/trace/types/extensions.d.ts","../../models/trace/types/file.d.ts","../../models/trace/types/types.d.ts","../../models/trace/handlers/animationhandler.d.ts","../../models/trace/handlers/auctionworkletshandler.d.ts","../../models/trace/helpers/treehelpers.d.ts","../../models/trace/helpers/extensions.d.ts","../../models/trace/helpers/network.d.ts","../../core/platform/arrayutilities.d.ts","../../core/platform/brand.d.ts","../../core/platform/dateutilities.d.ts","../../core/platform/devtoolspath.d.ts","../../core/platform/domutilities.d.ts","../../core/platform/keyboardutilities.d.ts","../../core/platform/maputilities.d.ts","../../core/platform/mimetype.d.ts","../../core/platform/numberutilities.d.ts","../../core/platform/servertiming.d.ts","../../core/platform/stringutilities.d.ts","../../core/platform/timing.d.ts","../../core/platform/typedarrayutilities.d.ts","../../core/platform/typescriptutilities.d.ts","../../core/platform/uistring.d.ts","../../core/platform/uservisibleerror.d.ts","../../core/platform/platform.d.ts","../../models/cpu_profile/profiletreemodel.d.ts","../../models/cpu_profile/cpuprofiledatamodel.d.ts","../../models/cpu_profile/cpu_profile.d.ts","../../models/trace/helpers/samplesintegrator.d.ts","../../models/trace/helpers/syntheticevents.d.ts","../../models/trace/helpers/timing.d.ts","../../models/trace/helpers/trace.d.ts","../../models/trace/helpers/helpers.d.ts","../../models/trace/handlers/types.d.ts","../../models/trace/handlers/extensiontracedatahandler.d.ts","../../models/trace/handlers/layertreehandler.d.ts","../../models/trace/handlers/metahandler.d.ts","../../models/trace/handlers/rendererhandler.d.ts","../../models/trace/handlers/frameshandler.d.ts","../../models/trace/handlers/gpuhandler.d.ts","../../models/trace/handlers/imagepaintinghandler.d.ts","../../models/trace/handlers/initiatorshandler.d.ts","../../models/trace/handlers/invalidationshandler.d.ts","../../models/trace/handlers/largestimagepainthandler.d.ts","../../models/trace/handlers/largesttextpainthandler.d.ts","../../models/trace/handlers/pageloadmetricshandler.d.ts","../../models/trace/handlers/layoutshiftshandler.d.ts","../../models/trace/handlers/memoryhandler.d.ts","../../models/trace/handlers/networkrequestshandler.d.ts","../../models/trace/handlers/pageframeshandler.d.ts","../../models/trace/handlers/sampleshandler.d.ts","../../models/trace/handlers/screenshotshandler.d.ts","../../models/trace/handlers/selectorstatshandler.d.ts","../../models/trace/handlers/servertimingshandler.d.ts","../../models/trace/handlers/userinteractionshandler.d.ts","../../models/trace/handlers/usertimingshandler.d.ts","../../models/trace/handlers/warningshandler.d.ts","../../models/trace/handlers/workershandler.d.ts","../../models/trace/handlers/modelhandlers.d.ts","../../models/trace/handlers/threads.d.ts","../../models/trace/handlers/handlers.d.ts","../../models/trace/extras/thirdparties.d.ts","../../models/trace/extras/urlforentry.d.ts","../../models/trace/extras/extras.d.ts","../../models/trace/lantern/core/lanternerror.d.ts","../../models/trace/lantern/types/lantern.d.ts","../../models/trace/lantern/types/types.d.ts","../../models/trace/lantern/core/networkanalyzer.d.ts","../../models/trace/lantern/core/core.d.ts","../../models/trace/lantern/graph/cpunode.d.ts","../../models/trace/lantern/graph/networknode.d.ts","../../models/trace/lantern/graph/basenode.d.ts","../../models/trace/lantern/graph/pagedependencygraph.d.ts","../../models/trace/lantern/graph/graph.d.ts","../../models/trace/lantern/simulation/simulationtimingmap.d.ts","../../models/trace/lantern/simulation/tcpconnection.d.ts","../../models/trace/lantern/simulation/connectionpool.d.ts","../../models/trace/lantern/simulation/constants.d.ts","../../models/trace/lantern/simulation/dnscache.d.ts","../../models/trace/lantern/simulation/simulator.d.ts","../../models/trace/lantern/simulation/simulation.d.ts","../../models/trace/lantern/metrics/metric.d.ts","../../models/trace/lantern/metrics/firstcontentfulpaint.d.ts","../../models/trace/lantern/metrics/interactive.d.ts","../../models/trace/lantern/metrics/largestcontentfulpaint.d.ts","../../models/trace/lantern/metrics/maxpotentialfid.d.ts","../../models/trace/lantern/metrics/speedindex.d.ts","../../models/trace/lantern/metrics/totalblockingtime.d.ts","../../models/trace/lantern/metrics/tbtutils.d.ts","../../models/trace/lantern/metrics/metrics.d.ts","../../models/trace/lantern/lantern.d.ts","../../models/trace/insights/cumulativelayoutshift.d.ts","../../models/trace/insights/documentlatency.d.ts","../../models/trace/insights/fontdisplay.d.ts","../../models/trace/insights/interactiontonextpaint.d.ts","../../models/trace/insights/largestcontentfulpaint.d.ts","../../models/trace/insights/renderblocking.d.ts","../../models/trace/insights/slowcssselector.d.ts","../../models/trace/insights/thirdpartyweb.d.ts","../../models/trace/insights/viewport.d.ts","../../models/trace/insights/insightrunners.d.ts","../../models/trace/insights/types.d.ts","../../models/trace/insights/common.d.ts","../../models/trace/insights/insights.d.ts","../../models/trace/lanterncomputationdata.d.ts","../../models/trace/modelimpl.d.ts","../../models/trace/processor.d.ts","../../models/trace/root-causes/layoutshift.d.ts","../../models/trace/root-causes/rootcauses.d.ts","../../models/trace/root-causes/root-causes.d.ts","../../models/trace/tracingmanager.d.ts","../../models/trace/trace.d.ts","../../analyze-trace.mjs","../../test/test-trace-engine.mjs","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.6/index.d.ts"],"fileIdsList":[[191,199,241,254,290],[199,241],[89,199,241],[88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,199,241],[102,199,241],[105,106,199,241],[77,105,199,241],[77,104,199,241],[141,142,199,241],[75,82,140,199,241],[82,104,140,199,241],[82,199,241],[82,112,113,199,241],[82,84,113,115,116,117,199,241],[82,113,199,241],[113,138,139,199,241],[77,82,199,241],[77,82,113,125,199,241],[83,84,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,199,241],[82,112,113,116,199,241],[82,107,112,199,241],[82,84,112,113,117,199,241],[82,138,199,241],[82,113,125,199,241],[82,85,199,241],[85,86,87,108,109,110,111,199,241],[79,199,241],[77,82,107,199,241],[82,140,181,199,241],[77,82,181,199,241],[82,181,199,241],[171,172,173,174,175,176,177,178,179,199,241],[180,181,182,199,241],[79,181,199,241],[82,143,181,199,241],[82,140,170,180,199,241],[144,147,199,241],[146,199,241],[146,149,150,199,241],[146,151,199,241],[149,150,151,152,199,241],[146,149,150,151,199,241],[146,148,153,160,169,199,241],[146,153,161,199,241],[153,160,161,199,241],[146,153,160,161,199,241],[146,153,160,199,241],[161,162,163,164,165,166,167,168,199,241],[146,155,199,241],[154,155,156,157,158,159,199,241],[153,199,241],[146,153,154,155,156,158,199,241],[154,199,241],[77,199,241],[145,199,241],[82,140,170,199,241],[82,112,140,183,199,241],[82,140,183,185,199,241],[77,82,113,188,199,241],[188,199,241],[77,187,199,241],[82,112,140,143,170,183,184,185,186,189,190,199,241],[77,78,79,199,241],[77,78,199,241],[76,78,79,80,81,199,241],[199,238,241],[199,240,241],[199,241,246,276],[199,241,242,247,253,254,261,273,284],[199,241,242,243,253,261],[194,195,196,199,241],[199,241,244,285],[199,241,245,246,254,262],[199,241,246,273,281],[199,241,247,249,253,261],[199,240,241,248],[199,241,249,250],[199,241,253],[199,241,251,253],[199,240,241,253],[199,241,253,254,255,273,284],[199,241,253,254,255,268,273,276],[199,236,241,289],[199,236,241,249,253,256,261,273,284],[199,241,253,254,256,257,261,273,281,284],[199,241,256,258,273,281,284],[199,241,253,259],[199,241,260,284,289],[199,241,249,253,261,273],[199,241,262],[199,241,263],[199,240,241,264],[199,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290],[199,241,266],[199,241,267],[199,241,253,268,269],[199,241,268,270,285,287],[199,241,253,273,274,275,276],[199,241,273,275],[199,241,273,274],[199,241,276],[199,241,277],[199,238,241,273],[199,241,253,279,280],[199,241,279,280],[199,241,246,261,273,281],[199,241,282],[241],[197,198,199,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290],[199,241,261,283],[199,241,256,267,284],[199,241,246,285],[199,241,273,286],[199,241,260,287],[199,241,288],[199,241,246,253,255,264,273,284,287,289],[199,241,273,290],[199,208,212,241,284],[199,208,241,273,284],[199,203,241],[199,205,208,241,281,284],[199,241,261,281],[199,241,291],[199,203,241,291],[199,205,208,241,261,284],[199,200,201,204,207,241,253,273,284],[199,208,215,241],[199,200,206,241],[199,208,229,230,241],[199,204,208,241,276,284,291],[199,229,241,291],[199,202,203,241,291],[199,208,241],[199,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,230,231,232,233,234,235,241],[199,208,223,241],[199,208,215,216,241],[199,206,208,216,217,241],[199,207,241],[199,200,203,208,241],[199,208,212,216,217,241],[199,212,241],[199,206,208,211,241,284],[199,200,205,208,215,241],[199,241,273],[199,203,208,229,241,289,291],[192,199,238,241,278],[74,199,241]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"abee51ebffafd50c07d76be5848a34abfe4d791b5745ef1e5648718722fab924","impliedFormat":1},{"version":"9e8ca8ed051c2697578c023d9c29d6df689a083561feba5c14aedee895853999","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d540251809289a05349b70ab5f4b7b99f922af66ab3c39ba56a475dcf95d5ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4b8a94f5f1db62b9e3489cc1d03cb25b87d37c56809ee869eb5590731303b98","impliedFormat":1},{"version":"e653b0f922561e26013e34dfda1c83f9bbb6c55ff92e38543332407c6d57aa74","signature":"56d8d0daa8dc216adb499d98c67d07876a3eb3a299037d861fe213cda14f0179"},"4aeae5599c74d8278d2c0c6c6261754903b803ffe6e08f49068cbf2f42c481bd","a28d41913c555e7176ffe5a10f096bcf7ef1079b52799aac2458862891c58efc","cb76ca02d29225616f6295bda2e489970fb0b89d42057c3fa71d17b3d00ec6af","166e2fcabd64eef7720102fc0bfc01a8c70e6df111252d00dfbdbdd9db752b8f","4718c7742fae8b7c20ffc84b91507416353818ac4f95b6f5e174a881a43cf4d2","89d7c6455666a91241c026233e09f98a40393f1f4903e7b12e7fafd54a832153","02ccc00d964fb68553871a8392cdfb0735a8649d5a6c7ee0635cbc0844203e35","bb96d88c16fe4d492d021110ea68fff179cd2d2f3d9965a92542675fad346885","07f5b03e716b0c69745a77263c5ec5fd4c3ce571201b6a880d9be5315ca4146f","1067d2b0dbe7e23c8fed2e0a3d855545fd6f9c9d90fc260f5f56f1c1cbfcf7a2","06bfa28ad8208a71396d2037788369e0db67da72660dd1a9b406dcbee65a58ab","f12d1259f0adb639f38ddc1a31b967510aa0fd7c533d4c1b2cb8fd7acc43d8db","6c23914f18988bb4242509317de4a8d9bc0df5203513859189a9e53d6eb0b4b5","f32f0edc1520ad26ea06c7471bec5a343ff5b4135833edeb6779d92d3f6853c7","e095651a10d731d17f76125a19d15a9de398373ba378c4d25cbefac7eaeab06e","65d8a88b4902b2f096622367f63b65e322bb275cad281aa0f6cd279fb38ed9ef","0ec76e6507114cb613de8247656c1512fb7f206a11c61f47b5e5b57eabad2043","a361e49abd1bd9d597423eee5458a5f8d4d4191e95d200abc03acbef72727ab1","51bc25497c2b9f5517b1fbb883b31672e8b85cdffdf59c11ed7b136cfff357c9","22a9efeecb6e88c681b867799ab6a5057b57eb3dcc93f89c4752bae6ad5358b6","3f4276791a900d66d021fc39d0c0cc388089ff6ad9e113868a95ba2533c55a69","62cd39349eaae13dcdee112ab2a332e87f3f5fa79cce57c5fdf47d9879cb552e","23f91c6675f924453a270c53ba82d24661dd960351bfd9aa441027d14f8d3b10","66d04e4c126f338946cc37d364a72d876011a6f3f4d709eac5ea9e53a3726c24","9c4fac59cac48e0524dc6da19cc875b0906f56f6309a69b12cf14fc3436a6b48","ff74b705fbfecc54f5a1d88ff9a473b8f701d36b5b0fdd7c859b69a4dc60631e","06f9f245beb04a2a4f45f4bf854207ac68cc475491e7b9a476d5d5d1dde72283","b6099613ad4bddc54775e6adca810064c0250440d9295a31e0b83f62d5857e95","80bcb02dd666415d3a44ec8617570c6d3aa3c3dcb687e825516fd8736b77437c","dca129a8a16f7a8782c5df3e4dbf79e0d14cd39e43e61d63905b5e3623d24d7f","81b02073c5bde57cc4af9a9f2a203dd3f70b1bfafc966a3c3b54e801f44e318d","cd1f9803cfbf50e7147457805002a1a82ccfdb6a14e08e79a7498cd6519afcb9","4f36a5b81b2327672d2f9ed71f0db2dfd69a16057c857a6a3e4b743dbcee214b","b0449721845b7755e6afcafbc33170027eb98d4df05dbdc412ab5080d691d136","0d8413851dffff94a19d82146d447249c35d3f8ae917668e0a59b0ba4bd393dd","6980053182bc9a26e7a03308c781ce48a9d691dc047a43f18125615303ed31f1","b9a340f42d49fa3000239a02cc139f164be10f8a05a5ab12173154f699467d8a","acfb43ae145e5601bcd867dc8acc641144e03498ccddd5aa2f0831fc5242d734","5ee361b5f918ccd12ff44e5204541e272a2ece86a20c52676cd6cb2b3244c872","6fa41b2c6441c1a8967e64bce5dd28fa4f8ae024ba21a7ae6a144acd0ed1aeba","fecba75e754a5b3cacfb47a0427cb9af759c7f4321db1f137df4bcea91b04b15","7aa543de84198e44a0e21458023055b7bfa5aff5b69b8dc48fba111b59f3881f","36f24e695d1c6921478a0556a87751366b2ef36fda5f37280a319ad3afaa816b","f2addec14d58a793abf6f5f9a9f1eda561cd13216c5156b1141658726d5ffe37","799ae885e665416326f6ea78e8ec11737158ea8a63410432b876dc52947702cd","d421e343d3d900e7bc13b7a140a85054ed669911613ad31fe8fd150a094063f7","d1866bac7a9c82126c0ab3159c3d088cae2c8276aff3e5d1f86ae10f208b1c79","af3a446a420906ab33b2fcf908f7f620d5a2e3c464bc66d84ce95c4f7aa80cfc","61a69ce0bbb1f4dd6a92a54479ea4071b36d712e18bfe6417cc85c4f7bb909f1","e88d94bd12050d3b0bdf68c1ed101939a19f35f1401ddd1a0772a2f32213c59e","d9866ef7f4ed279d5d03eb0703ee1da82348f516805a77106da95ea9c4dd2312","751c08876346a5059c798acc566a74c26b88f5c44b5d72718cad449fdee0f99b","a1ef2e7fe57f93792bbf7f05c87ac13ccf8715f1131a557e3f8af2062dc57bba","a6b345e8858cc5e5559ebe7c1de828222072ff211fc4eb568c3dd78791396551","e11becc3f9e7d0c892fdb10d992149179bdfa9486b2a2c1dfcc77dee8be6523f","7d75b4151595b27f239ed11cb0323822171ad9cc98d6073932e898699cde0ad3","74cef91358d4ba27ce2f88003bb0d0c842d7a2d21130f98a29eec20bf60a21cb","4ffac232996474625dc7e31d5342dc1588bb1be92899c97135b722f02dbec756","498f1a2f77951950e7be263e88509006668ff0e3ba4d4bf68fa2c74ab0c1d290","00352586f8b5b72da4fe5099beab8c1fa9161931bfc9700bed090d45da6b2647","1cae37e67d860c7952dba52eb900388a73225987f69d027f82d8ca767eba7598","23112b8307ee050af154cdcce6eade004f6e66cfd286b367987f34449df9468b","122c238d161fc1e16593ce195f10ce3b1584c33e5991ffef5cee783b740e5c3b","e016d976667e74ae8e986f5fe5adc14e35ccd27eaa51bc77374581f5aca553f2","8d5a17a3028dd8cf4c6c5de03747b79d978a6654095f5afd247252c86cdbf3a1","16db7f7be19d7f92aa082284f8b0d1979818ed5f80d8ae2f54375d23352dee8c","c5ae4d606efc7918dc06a3863f90705fe16d5fa27ac467effcfce4ece31cf9db","fcb255bc5ca438b7b9df29f7d12956d7ebca238848726e61fb64e53e9b7976dc","13553cadb0a19e32c22453b8ccfa18dc409038e4dcff71277a2dfad5cb00eb9a","a2c38366fd22562e5c0de5517b8e25400fabb41db45c1c5d36bca4259c952784","8a0be51d107c4bd8f499990532fe2ef067321d3fdcc86169259655a91e9ffb5b","e4b0341c7c915c5a34a777d5dd80c91a5ebe6960ae61bb75a79a434f7ef6050b","65b15869a5304210a74f02483c6942be2866dc7f850c57677a810606840694c8","c3fe1df1df96bb178f6697a6100cb5f0ff31d31f6508423913cd96398744912f","8cb02ebec39d6b7d47f171bf611a383cb0422b6421f75e59615ccc1ed0bbdff7","58b43d07e068acb4f5f507db98a2e907054a87a1c5fd3d0c5ba6fdf8bf223767","f82e320fcb7462e34d690c5533a1e664cf50e878bf611e57479fa45f2c367c0d","4d60206c2c7056fb0ce532bccd53cc7ca91cea6749436370276c5bed37cfe1a6","0a983893a12abc7bd5f0683dbe40643bb05b9f9cf50c6c66eefabc396928a4dd","635bc6820e9714ee18e6fb7d1e457a3a9b8afa89dca7a415e34061a2837540fb","0e5f60dde13c788ce31ec8befcf57c4563cbac76bfbb708dcee1eaebdb40808b","3bb93f54703c59cf80ef9875a198919bb5af91fba132db1dfb5148fdced1f699","1b661660278e6814778ee9d96a09d3c46d98053e780b5e91e629c86024dc99af","86571723aeba0eb75c6ce3e3a184f1ef6c3aab99c3d6c0a1b0616d8a49ac79f4","af49c00792161e91cde047a3a9e77ee7df65373d76a9856c2c8c6eed3c910138","12acbf60cbab0152b077dc7df21252c585e3e12b19cea316e077c56151d550ac","f9830e50134928ff6bccd6031005a908ccc583abaecbea1f876d09648a6f80e3","4839bfb4b24fc8be37adbcc4576dda22cda99598aaea392b3eed5691dba16edf","2242dd864f183bd84060cf5928e76c122d71ad7446cb7fff209faa7152f07fec","704ee6aa84b3de1d28f7c7b0d46fd30828e069951b12cb026d4166b02327bf7e","72349451fef9d8697a47ace642b9c5cab4981be0423dd2c346add976d746c782","4e73eaf135f88b3dcc8960e758624d624f7c518f6af2c40e5a03a5aa0f86fa60","8de9ccda27bb5caa761c01476668d218b1bd68639c5953c69cdbb65981d2a4de","d1c01d55315a58e91cb375c36977e0ac103db3e5c374bf48c4c80d966acf781e","60b6a8ba8d225dcb41bdbcec2555eafcee525f3006b816d7f5718ba9b3d252ce","94f0446612b5258c7e276d600035789d8a94eb930787b5d7ba6bc5dcaee22968","e08ba58841a5a58a23b0d52ddae1574d613c2e0e1f021c14ad943db2bbbf358c","6e4533078e343db66c9e4a1cc780ac8a10bca9bbdcdbfcc82037d8e48028b2c3","0bada7a6c953845529dfb2843985ad19984791ff8605d0269fd56d765919c0a6","a42cb46ce9476a741010dffbf519e9203939019df275160ebe3bea8d8d1742a0","0d0a215c125babd3581156008521d1e4ca00a59e7deb77cbe8e66964d5d17482","07a229a7808ebde317c5cb19d34034cab69136b16bc46eae3d0f009c3c7786f9","b9126242b3054cba072b190673c3ffdef4e483229f7789fd55d8b4208b213126","ef01291cf96a37976802f4cdd07b94bc17191c4593b0ec559da1b3202dbf6889","ea035bf3085a47b90ebd99db5e4fe241a0eaeac0e06eb7d439e975f9829de4ca","fc551d9a5adc39cfb3ff7a35c6c3e42336e2f0171e0ce0fe0de91b40702b6796","37c25f47299266d05f09de58d2bd4801b1fc401879538b525043e44538a6b508","215706082f607b921c5300425f1ff960342aa6b362675b168c3886295f544945","164ab6f86798e62f88cc38e56aef85115c644e1d207286c3e9fffdbed52db62d",{"version":"5ba38924c2d9d9b5c73cf9b81b945d628c66c00d54d592c355603252b19f26f6","affectsGlobalScope":true},{"version":"90e4ef99225bf3dbf3a490800f41cc28be794edd1a7adc3f26badb514f9ba55e","affectsGlobalScope":true},"b89fd18abf4aad45b05ce742200fb4c352513eafaf8f8a50f91c6484c5301692","40c425cd260e1c75ee86adb29c0ba30e9885a54e28244b6359ce10f436f6337d","fcff23e62dd16762aeba3743298f8886ba89e0ed7d040ac4cbf5da80cb3d9fb4","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","1aeb8db24bb9b6a0ced5c5e5f98b687828b8f0f632df15d44176cce8fe97faad",{"version":"48834513b1bdf65b7f4ae79a87dcac9ccfcff85d9fad1945428c4f547bbb5ddc","signature":"fdd777efc3c8a1178f816db3ee1383901406fd65b094912ef363303c74990f3a","impliedFormat":99},{"version":"9ef5d9956b076c2cb0e52fb8e2e69e52c6a5fd71878cf9a748ae912bf6076849","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d1319e6b5d0efd8c5eae07eb864a00102151e8b9afddd2d45db52e9aae002c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"4d2b0eb911816f66abe4970898f97a2cfc902bcd743cbfa5017fad79f7ef90d8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"24b8685c62562f5d98615c5a0c1d05f297cf5065f15246edfe99e81ec4c0e011","impliedFormat":1},{"version":"93507c745e8f29090efb99399c3f77bec07db17acd75634249dc92f961573387","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"81184fe8e67d78ac4e5374650f0892d547d665d77da2b2f544b5d84729c4a15d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f52e8dacc97d71dcc96af29e49584353f9c54cb916d132e3e768d8b8129c928d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"a76037255d4e7af8b20d191a4d3ad13236fba352239d3d9d54868a98dbb222f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"875928df2f3e9a3aed4019539a15d04ff6140a06df6cd1b2feb836d22a81eaca","affectsGlobalScope":true,"impliedFormat":1},{"version":"20b97c3368b1a63d2156deea35d03b125bb07908906eb35e0438042a3bbb3e71","impliedFormat":1},{"version":"f65eecc63138013d13fefea9092e83c3043cb52a5e351d22ea194e81021c1cd5","impliedFormat":1},{"version":"4617299caf33afef24b5e074e6d20ce8f510dd212cebd75884ef27c64457a77b","impliedFormat":1},{"version":"fa56be9b96f747e93b895d8dc2aa4fb9f0816743e6e2abb9d60705e88d4743a2","impliedFormat":1},{"version":"8257c55ff6bff6169142a35fce6811b511d857b4ae4f522cdb6ce20fd2116b2c","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"5990bd8b9bc91f6e90269685ff5a154eeda52c18238f89f0101fb4d08cd80476","affectsGlobalScope":true,"impliedFormat":1},{"version":"94c4187083503a74f4544503b5a30e2bd7af0032dc739b0c9a7ce87f8bddc7b9","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"3eb62baae4df08c9173e6903d3ca45942ccec8c3659b0565684a75f3292cffbb","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f6abdaf8764ef01a552a958f45e795b5e79153b87ddad3af5264b86d2681b72","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","impliedFormat":1},{"version":"a8f06c2382a30b7cb89ad2dfc48fc3b2b490f3dafcd839dadc008e4e5d57031d","impliedFormat":1},{"version":"553870e516f8c772b89f3820576152ebc70181d7994d96917bb943e37da7f8a7","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"cdb781940d24f57752615cc37d2b975b45906f386e2e5344700156fd2fb74efc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"f59493f68eade5200559e5016b5855f7d12e6381eb6cab9ad8a379af367b3b2d","impliedFormat":1},{"version":"125e3472965f529de239d2bc85b54579fed8e0b060d1d04de6576fb910a6ec7f","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"6306bf4c2b609f4c5b8bd7d26a85d40ccac8fb4276a84597fa8240f83c82f2b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a5c09990a37469b0311a92ce8feeb8682e83918723aedbd445bd7a0f510eaaa3","impliedFormat":1},{"version":"ae25afbbf1ed5df63a177d67b9048bf7481067f1b8dc9c39212e59db94fc9fc6","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"89332fc3cc945c8df2bc0aead55230430a0dabd3277c39a43315e00330de97a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"171fd8807643c46a9d17e843959abdf10480d57d60d38d061fb44a4c8d4a8cc4","impliedFormat":1}],"root":[75,77,192,193],"options":{"allowJs":true,"checkJs":true,"composite":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./","strict":true,"target":99},"referencedMap":[[192,1],[88,2],[89,2],[90,2],[91,3],[92,2],[93,2],[94,2],[95,2],[96,2],[104,4],[97,2],[98,2],[99,3],[100,2],[101,2],[102,3],[103,5],[77,2],[107,6],[106,7],[105,8],[143,9],[141,10],[142,11],[83,12],[84,12],[114,13],[118,14],[119,15],[140,16],[120,12],[121,12],[122,12],[123,17],[124,17],[115,15],[126,18],[127,12],[116,12],[138,19],[128,15],[129,12],[125,15],[117,20],[130,21],[131,15],[132,12],[133,15],[139,22],[113,23],[134,24],[135,12],[136,15],[137,12],[86,25],[112,26],[87,27],[108,28],[109,12],[110,12],[111,28],[85,12],[182,29],[171,30],[172,31],[173,31],[180,32],[183,33],[174,34],[175,31],[176,31],[177,31],[178,35],[181,36],[179,31],[148,37],[144,2],[147,38],[151,39],[149,40],[153,41],[150,40],[152,42],[170,43],[162,44],[163,45],[164,46],[165,45],[161,47],[169,48],[166,45],[168,2],[167,45],[156,49],[157,2],[158,38],[160,50],[154,51],[159,52],[155,53],[145,54],[146,55],[184,56],[185,57],[186,58],[187,59],[189,60],[188,61],[191,62],[190,2],[76,2],[80,27],[81,63],[78,2],[79,64],[82,65],[238,66],[239,66],[240,67],[241,68],[242,69],[243,70],[194,2],[197,71],[195,2],[196,2],[244,72],[245,73],[246,74],[247,75],[248,76],[249,77],[250,77],[252,78],[251,79],[253,80],[254,81],[255,82],[237,83],[256,84],[257,85],[258,86],[259,87],[260,88],[261,89],[262,90],[263,91],[264,92],[265,93],[266,94],[267,95],[268,96],[269,96],[270,97],[271,2],[272,2],[273,98],[275,99],[274,100],[276,101],[277,102],[278,103],[279,104],[280,105],[281,106],[282,107],[199,108],[198,2],[291,109],[283,110],[284,111],[285,112],[286,113],[287,114],[288,115],[289,116],[290,117],[74,2],[72,2],[73,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[23,2],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[8,2],[51,2],[48,2],[49,2],[50,2],[52,2],[9,2],[53,2],[54,2],[55,2],[58,2],[56,2],[57,2],[59,2],[60,2],[10,2],[61,2],[1,2],[62,2],[63,2],[11,2],[68,2],[65,2],[64,2],[71,2],[69,2],[67,2],[70,2],[66,2],[215,118],[225,119],[214,118],[235,120],[206,121],[205,122],[234,123],[228,124],[233,125],[208,126],[222,127],[207,128],[231,129],[203,130],[202,123],[232,131],[204,132],[209,133],[210,2],[213,133],[200,2],[236,134],[226,135],[217,136],[218,137],[220,138],[216,139],[219,140],[229,123],[211,141],[212,142],[221,143],[201,144],[224,135],[223,133],[227,2],[230,145],[193,146],[75,147]],"latestChangedDtsFile":"./analyze-trace.d.mts","version":"5.6.2"}
package/analyze-trace.mjs CHANGED
@@ -2,7 +2,6 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- /* eslint-disable rulesdir/es_modules_import */
6
5
  import fs from 'node:fs';
7
6
  import zlib from 'node:zlib';
8
7
 
@@ -19,16 +18,31 @@ import * as Trace from './models/trace/trace.js';
19
18
  polyfillDOMRect();
20
19
 
21
20
  /**
22
- * @param {string} filename
23
- * @returns {Promise<{parsedTrace: Trace.Handlers.Types.ParsedTrace, insights: Trace.Insights.Types.TraceInsightSets | null>}}
21
+ * @param {Trace.Types.Events.Event[]} traceEvents
22
+ * @return {Promise<{parsedTrace: Trace.Handlers.Types.ParsedTrace, insights: Trace.Insights.Types.TraceInsightSets, model: Trace.TraceModel.Model}>}
24
23
  */
25
- export async function analyzeTrace(filename) {
26
- const traceEvents = loadTraceEventsFromFile(filename);
27
- const model = Trace.TraceModel.Model.createWithAllHandlers(Trace.Types.Configuration.DEFAULT);
24
+ export async function analyzeEvents(traceEvents) {
25
+ const model = Trace.TraceModel.Model.createWithAllHandlers();
28
26
  await model.parse(traceEvents);
29
27
  const parsedTrace = model.parsedTrace();
30
28
  const insights = model.traceInsights();
31
- return {parsedTrace, insights};
29
+
30
+ if (!parsedTrace) {
31
+ throw new Error('No data');
32
+ }
33
+ if (!insights) {
34
+ throw new Error('No insights');
35
+ }
36
+ return {parsedTrace, insights, model};
37
+ }
38
+
39
+ /**
40
+ * @param {string} filename
41
+ * @returns {ReturnType<analyzeEvents>}
42
+ */
43
+ export async function analyzeTrace(filename) {
44
+ const traceEvents = loadTraceEventsFromFile(filename);
45
+ return analyzeEvents(traceEvents);
32
46
  }
33
47
 
34
48
  // If run as CLI, parse the argv trace (or a fallback)
@@ -38,20 +52,22 @@ if (import.meta.url.endsWith(process?.argv[1])) {
38
52
 
39
53
  async function cli() {
40
54
  const filename = process.argv.at(2);
55
+ if (!filename)
56
+ throw new Error('Provide filename');
41
57
  const TraceEngine = await analyzeTrace(filename);
42
58
  console.log(TraceEngine);
43
59
  }
44
60
 
45
61
 
46
62
  /**
47
- * @param {string=} filename
63
+ * @param {string} filename
48
64
  * @returns TraceEvent[]
49
65
  */
50
66
  function loadTraceEventsFromFile(filename) {
51
67
  const fileBuf = fs.readFileSync(filename);
52
68
  let data;
53
69
  if (isGzip(fileBuf)) {
54
- data = zlib.gunzipSync(fileBuf);
70
+ data = zlib.gunzipSync(fileBuf).toString();
55
71
  } else {
56
72
  data = fileBuf.toString('utf8');
57
73
  }
@@ -82,16 +98,34 @@ export function polyfillDOMRect() {
82
98
  // https://raw.githubusercontent.com/JakeChampion/polyfill-library/master/polyfills/DOMRect/polyfill.js
83
99
 
84
100
  (function(global) {
101
+ /** @param {number=} v */
85
102
  function number(v) {
86
103
  return v === undefined ? 0 : Number(v);
87
104
  }
88
-
105
+ /**
106
+ * @param {number} u
107
+ * @param {number} v
108
+ */
89
109
  function different(u, v) {
90
110
  return u !== v && !(isNaN(u) && isNaN(v));
91
111
  }
92
112
 
113
+ /**
114
+ * @param {number} xArg
115
+ * @param {number} yArg
116
+ * @param {number} wArg
117
+ * @param {number} hArg
118
+ * @this {DOMRect}
119
+ */
93
120
  function DOMRect(xArg, yArg, wArg, hArg) {
94
- let x, y, width, height, left, right, top, bottom;
121
+ let /** @type {number} */ x;
122
+ let /** @type {number} */ y;
123
+ let /** @type {number} */ width;
124
+ let /** @type {number} */ height;
125
+ let /** @type {number=} */ left;
126
+ let /** @type {number=} */ right;
127
+ let /** @type {number=} */ top;
128
+ let /** @type {number=} */ bottom;
95
129
 
96
130
  x = number(xArg);
97
131
  y = number(yArg);
@@ -103,6 +137,7 @@ export function polyfillDOMRect() {
103
137
  get: function() {
104
138
  return x;
105
139
  },
140
+ /** @param {number} newX */
106
141
  set: function(newX) {
107
142
  if (different(x, newX)) {
108
143
  x = newX;
@@ -186,6 +221,7 @@ export function polyfillDOMRect() {
186
221
  });
187
222
  }
188
223
 
224
+ // @ts-expect-error It's not identical.
189
225
  globalThis.DOMRect = DOMRect;
190
226
  })(globalThis);
191
227
  }
@@ -2288,6 +2288,11 @@ export declare namespace CSS {
2288
2288
  * The array keeps the types of ancestor CSSRules from the innermost going outwards.
2289
2289
  */
2290
2290
  ruleTypes?: CSSRuleType[];
2291
+ /**
2292
+ * @starting-style CSS at-rule array.
2293
+ * The array enumerates @starting-style at-rules starting with the innermost one, going outwards.
2294
+ */
2295
+ startingStyles?: CSSStartingStyle[];
2291
2296
  }
2292
2297
  /**
2293
2298
  * Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors.
@@ -2299,7 +2304,8 @@ export declare namespace CSS {
2299
2304
  ContainerRule = "ContainerRule",
2300
2305
  LayerRule = "LayerRule",
2301
2306
  ScopeRule = "ScopeRule",
2302
- StyleRule = "StyleRule"
2307
+ StyleRule = "StyleRule",
2308
+ StartingStyleRule = "StartingStyleRule"
2303
2309
  }
2304
2310
  /**
2305
2311
  * CSS coverage information.
@@ -2542,6 +2548,10 @@ export declare namespace CSS {
2542
2548
  * Optional logical axes queried for the container.
2543
2549
  */
2544
2550
  logicalAxes?: DOM.LogicalAxes;
2551
+ /**
2552
+ * true if the query contains scroll-state() queries.
2553
+ */
2554
+ queriesScrollState?: boolean;
2545
2555
  }
2546
2556
  /**
2547
2557
  * CSS Supports at-rule descriptor.
@@ -2601,6 +2611,20 @@ export declare namespace CSS {
2601
2611
  */
2602
2612
  styleSheetId?: StyleSheetId;
2603
2613
  }
2614
+ /**
2615
+ * CSS Starting Style at-rule descriptor.
2616
+ */
2617
+ interface CSSStartingStyle {
2618
+ /**
2619
+ * The associated rule header range in the enclosing stylesheet (if
2620
+ * available).
2621
+ */
2622
+ range?: SourceRange;
2623
+ /**
2624
+ * Identifier of the stylesheet containing this object (if exists).
2625
+ */
2626
+ styleSheetId?: StyleSheetId;
2627
+ }
2604
2628
  /**
2605
2629
  * CSS Layer data.
2606
2630
  */
@@ -3484,6 +3508,7 @@ export declare namespace DOM {
3484
3508
  const enum PseudoType {
3485
3509
  FirstLine = "first-line",
3486
3510
  FirstLetter = "first-letter",
3511
+ Check = "check",
3487
3512
  Before = "before",
3488
3513
  After = "after",
3489
3514
  Marker = "marker",
@@ -4436,6 +4461,7 @@ export declare namespace DOM {
4436
4461
  containerName?: string;
4437
4462
  physicalAxes?: PhysicalAxes;
4438
4463
  logicalAxes?: LogicalAxes;
4464
+ queriesScrollState?: boolean;
4439
4465
  }
4440
4466
  interface GetContainerForNodeResponse extends ProtocolResponseWithError {
4441
4467
  /**
@@ -10756,6 +10782,7 @@ export declare namespace Page {
10756
10782
  EncryptedMedia = "encrypted-media",
10757
10783
  ExecutionWhileOutOfViewport = "execution-while-out-of-viewport",
10758
10784
  ExecutionWhileNotRendered = "execution-while-not-rendered",
10785
+ FencedUnpartitionedStorageRead = "fenced-unpartitioned-storage-read",
10759
10786
  FocusWithoutUserActivation = "focus-without-user-activation",
10760
10787
  Fullscreen = "fullscreen",
10761
10788
  Frobulate = "frobulate",
@@ -13579,6 +13606,7 @@ export declare namespace Storage {
13579
13606
  destinationLimitPriority: SignedInt64AsBase10;
13580
13607
  aggregatableDebugReportingConfig: AttributionReportingAggregatableDebugReportingConfig;
13581
13608
  scopesData?: AttributionScopesData;
13609
+ maxEventLevelReports: integer;
13582
13610
  }
13583
13611
  const enum AttributionReportingSourceRegistrationResult {
13584
13612
  Success = "success",
@@ -15259,7 +15287,8 @@ export declare namespace WebAudio {
15259
15287
  const enum ContextState {
15260
15288
  Suspended = "suspended",
15261
15289
  Running = "running",
15262
- Closed = "closed"
15290
+ Closed = "closed",
15291
+ Interrupted = "interrupted"
15263
15292
  }
15264
15293
  /**
15265
15294
  * Enum of AudioNode types
@@ -248,6 +248,9 @@ export class TraceProcessor extends EventTarget {
248
248
  const graph = LanternComputationData.createGraph(requests, trace, parsedTrace);
249
249
  const processedNavigation = LanternComputationData.createProcessedNavigation(parsedTrace, frameId, navigationId);
250
250
  const networkAnalysis = Lantern.Core.NetworkAnalyzer.analyze(requests);
251
+ if (!networkAnalysis) {
252
+ return;
253
+ }
251
254
  const simulator = Lantern.Simulation.Simulator.createSimulator({
252
255
  // TODO(crbug.com/372674229): if devtools throttling was on, does this network analysis capture
253
256
  // that? Do we need to set 'devtools' throttlingMethod?
@@ -369,7 +372,7 @@ export class TraceProcessor extends EventTarget {
369
372
  else if (!expectedErrors.some(err => e.message === err)) {
370
373
  // To reduce noise from tests, only print errors that are not expected to occur because a trace is
371
374
  // too old (for which there is no single check).
372
- console.error(e.message);
375
+ console.error(e);
373
376
  }
374
377
  }
375
378
  const min = navigation.ts;