@plumile/router 0.1.51 → 0.1.53

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 (136) hide show
  1. package/lib/ResourcePage.d.ts +12 -0
  2. package/lib/ResourcePage.d.ts.map +1 -0
  3. package/lib/ResourcePage.js +38 -0
  4. package/lib/asyncResource.d.ts +8 -0
  5. package/lib/asyncResource.d.ts.map +1 -0
  6. package/lib/asyncResource.js +101 -0
  7. package/lib/builder.d.ts +13 -0
  8. package/lib/builder.d.ts.map +1 -0
  9. package/lib/builder.js +72 -0
  10. package/lib/errors/HttpRedirect.d.ts +6 -0
  11. package/lib/errors/HttpRedirect.d.ts.map +1 -0
  12. package/lib/errors/HttpRedirect.js +11 -0
  13. package/lib/errors/index.d.ts +2 -0
  14. package/lib/errors/index.d.ts.map +1 -0
  15. package/lib/errors/index.js +2 -0
  16. package/lib/eslint-rules/index.d.ts +2 -0
  17. package/lib/eslint-rules/index.d.ts.map +1 -0
  18. package/lib/eslint-rules/index.js +2 -0
  19. package/lib/eslint-rules/no-direct-window-location-search.d.ts +4 -0
  20. package/lib/eslint-rules/no-direct-window-location-search.d.ts.map +1 -0
  21. package/lib/eslint-rules/no-direct-window-location-search.js +48 -0
  22. package/lib/esm/builder.d.ts +7 -7
  23. package/lib/esm/builder.d.ts.map +1 -1
  24. package/lib/esm/builder.js +1 -1
  25. package/lib/esm/routing/createRouter.d.ts +2 -2
  26. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  27. package/lib/esm/routing/createRouter.js +1 -1
  28. package/lib/esm/tools.d.ts +5 -5
  29. package/lib/esm/tools.d.ts.map +1 -1
  30. package/lib/esm/tools.js +1 -1
  31. package/lib/esm/types.d.ts +34 -45
  32. package/lib/esm/types.d.ts.map +1 -1
  33. package/lib/esm/types.js +1 -1
  34. package/lib/history/BrowserHistory.d.ts +21 -0
  35. package/lib/history/BrowserHistory.d.ts.map +1 -0
  36. package/lib/history/BrowserHistory.js +139 -0
  37. package/lib/history/index.d.ts +3 -0
  38. package/lib/history/index.d.ts.map +1 -0
  39. package/lib/history/index.js +2 -0
  40. package/lib/history/types.d.ts +19 -0
  41. package/lib/history/types.d.ts.map +1 -0
  42. package/lib/history/types.js +2 -0
  43. package/lib/index.d.ts +10 -0
  44. package/lib/index.d.ts.map +1 -0
  45. package/lib/index.js +9 -0
  46. package/lib/instrumentation/Instrumentation.d.ts +90 -0
  47. package/lib/instrumentation/Instrumentation.d.ts.map +1 -0
  48. package/lib/instrumentation/Instrumentation.js +59 -0
  49. package/lib/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
  50. package/lib/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
  51. package/lib/instrumentation/adapters/devtoolsBridge.js +133 -0
  52. package/lib/instrumentation/adapters/logger.d.ts +10 -0
  53. package/lib/instrumentation/adapters/logger.d.ts.map +1 -0
  54. package/lib/instrumentation/adapters/logger.js +19 -0
  55. package/lib/instrumentation/index.d.ts +4 -0
  56. package/lib/instrumentation/index.d.ts.map +1 -0
  57. package/lib/instrumentation/index.js +4 -0
  58. package/lib/prepareResource.d.ts +4 -0
  59. package/lib/prepareResource.d.ts.map +1 -0
  60. package/lib/prepareResource.js +11 -0
  61. package/lib/routing/Link.d.ts +23 -0
  62. package/lib/routing/Link.d.ts.map +1 -0
  63. package/lib/routing/Link.js +158 -0
  64. package/lib/routing/RouteComponent.d.ts +8 -0
  65. package/lib/routing/RouteComponent.d.ts.map +1 -0
  66. package/lib/routing/RouteComponent.js +20 -0
  67. package/lib/routing/RouteComponentWrapper.d.ts +11 -0
  68. package/lib/routing/RouteComponentWrapper.d.ts.map +1 -0
  69. package/lib/routing/RouteComponentWrapper.js +101 -0
  70. package/lib/routing/RouterRenderer.d.ts +10 -0
  71. package/lib/routing/RouterRenderer.d.ts.map +1 -0
  72. package/lib/routing/RouterRenderer.js +67 -0
  73. package/lib/routing/RoutingContext.d.ts +5 -0
  74. package/lib/routing/RoutingContext.d.ts.map +1 -0
  75. package/lib/routing/RoutingContext.js +4 -0
  76. package/lib/routing/createRouter.d.ts +19 -0
  77. package/lib/routing/createRouter.d.ts.map +1 -0
  78. package/lib/routing/createRouter.js +604 -0
  79. package/lib/routing/index.d.ts +16 -0
  80. package/lib/routing/index.d.ts.map +1 -0
  81. package/lib/routing/index.js +16 -0
  82. package/lib/routing/useAllQuery.d.ts +7 -0
  83. package/lib/routing/useAllQuery.d.ts.map +1 -0
  84. package/lib/routing/useAllQuery.js +31 -0
  85. package/lib/routing/useFilterDiagnostics.d.ts +2 -0
  86. package/lib/routing/useFilterDiagnostics.d.ts.map +1 -0
  87. package/lib/routing/useFilterDiagnostics.js +11 -0
  88. package/lib/routing/useFilters.d.ts +8 -0
  89. package/lib/routing/useFilters.d.ts.map +1 -0
  90. package/lib/routing/useFilters.js +65 -0
  91. package/lib/routing/useLocation.d.ts +2 -0
  92. package/lib/routing/useLocation.d.ts.map +1 -0
  93. package/lib/routing/useLocation.js +24 -0
  94. package/lib/routing/useNavigate.d.ts +7 -0
  95. package/lib/routing/useNavigate.d.ts.map +1 -0
  96. package/lib/routing/useNavigate.js +11 -0
  97. package/lib/routing/usePathname.d.ts +2 -0
  98. package/lib/routing/usePathname.d.ts.map +1 -0
  99. package/lib/routing/usePathname.js +9 -0
  100. package/lib/routing/useQuery.d.ts +2 -0
  101. package/lib/routing/useQuery.d.ts.map +1 -0
  102. package/lib/routing/useQuery.js +9 -0
  103. package/lib/routing/useQueryState.d.ts +13 -0
  104. package/lib/routing/useQueryState.d.ts.map +1 -0
  105. package/lib/routing/useQueryState.js +45 -0
  106. package/lib/routing/useSearchParams.d.ts +11 -0
  107. package/lib/routing/useSearchParams.d.ts.map +1 -0
  108. package/lib/routing/useSearchParams.js +67 -0
  109. package/lib/tools/buildCombinedSearch.d.ts +8 -0
  110. package/lib/tools/buildCombinedSearch.d.ts.map +1 -0
  111. package/lib/tools/buildCombinedSearch.js +76 -0
  112. package/lib/tools/index.d.ts +3 -0
  113. package/lib/tools/index.d.ts.map +1 -0
  114. package/lib/tools/index.js +13 -0
  115. package/lib/tools/query.d.ts +2 -0
  116. package/lib/tools/query.d.ts.map +1 -0
  117. package/lib/tools/query.js +43 -0
  118. package/lib/tools.d.ts +15 -0
  119. package/lib/tools.d.ts.map +1 -0
  120. package/lib/tools.js +179 -0
  121. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  122. package/lib/types/builder.d.ts +7 -7
  123. package/lib/types/builder.d.ts.map +1 -1
  124. package/lib/types/routing/createRouter.d.ts +2 -2
  125. package/lib/types/routing/createRouter.d.ts.map +1 -1
  126. package/lib/types/tools.d.ts +5 -5
  127. package/lib/types/tools.d.ts.map +1 -1
  128. package/lib/types/types.d.ts +34 -45
  129. package/lib/types/types.d.ts.map +1 -1
  130. package/lib/types.d.ts +245 -0
  131. package/lib/types.d.ts.map +1 -0
  132. package/lib/types.js +2 -0
  133. package/lib/values.d.ts +19 -0
  134. package/lib/values.d.ts.map +1 -0
  135. package/lib/values.js +53 -0
  136. package/package.json +2 -2
@@ -17,17 +17,17 @@ export type ReadableResource<T> = {
17
17
  load: () => Promise<T>;
18
18
  read: () => T;
19
19
  };
20
- export type FlatRouteInput<TVariables extends ParamData, TContext = unknown> = {
20
+ export type FlatRouteInput<TVariables extends ParamData> = {
21
21
  path: string;
22
22
  redirectTo?: string;
23
23
  matchFunction: MatchFunction<TVariables>;
24
- routes: UnknownRoute<TContext>[];
24
+ routes: AnyRoute[];
25
25
  };
26
- export type RouterMatchedRoute<TVariables extends ParamData, TContext = unknown> = {
26
+ export type RouterMatchedRoute<TVariables extends ParamData> = {
27
27
  match: Match<TVariables>;
28
28
  params: TVariables;
29
29
  path: string;
30
- route: FlatRoute<TVariables, TContext>;
30
+ route: FlatRoute<TVariables>;
31
31
  };
32
32
  export type RouteReactComponent<TProps = Record<string, unknown>> = (props: TProps) => JSX.Element | null;
33
33
  type BivariantCallback<Fn extends (...args: never[]) => unknown> = {
@@ -42,7 +42,7 @@ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariable
42
42
  preparedSegments: PreparedRouteSegments<TContext>;
43
43
  segmentIndex: number;
44
44
  leafSegment: PreparedRouteSegment<TContext>;
45
- route: FlatRoute<TVariables, TContext> | null;
45
+ route: FlatRoute<TVariables> | null;
46
46
  context: TContext;
47
47
  rawQuery: RawQuery;
48
48
  query: TQueryShape;
@@ -73,7 +73,7 @@ export type PreparedRouteSegmentSnapshot = {
73
73
  querySchema?: FilterSchema;
74
74
  };
75
75
  export type PreparedRouteChain<TVariables extends ParamData, TContext = unknown> = {
76
- match: RouterMatchedRoute<TVariables, TContext> | null;
76
+ match: RouterMatchedRoute<TVariables> | null;
77
77
  segments: PreparedRouteSegments<TContext>;
78
78
  routes: PreparedRouteSegments<TContext>;
79
79
  };
@@ -91,7 +91,7 @@ export type ResolvedPreparedRouteSegment<TContext = unknown, TPrepared extends P
91
91
  };
92
92
  export type ResolvedPreparedMatchRoute = ResolvedPreparedRouteSegment;
93
93
  export type ResolvedPreparedRouteChain<TVariables extends ParamData, TContext = unknown> = {
94
- match: RouterMatchedRoute<TVariables, TContext> | null;
94
+ match: RouterMatchedRoute<TVariables> | null;
95
95
  segments: ResolvedPreparedRouteSegment<TContext>[];
96
96
  routes: ResolvedPreparedRouteSegment<TContext>[];
97
97
  };
@@ -100,7 +100,7 @@ export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | un
100
100
  preparedMatch: PreparedRouteChain<TVariables, TContext>;
101
101
  context: TContext;
102
102
  location: Location;
103
- route: RouterMatchedRoute<TVariables, TContext> | null;
103
+ route: RouterMatchedRoute<TVariables> | null;
104
104
  forceRerender: boolean;
105
105
  rawSearch?: string;
106
106
  query: RawQuery;
@@ -109,19 +109,27 @@ export type RouteEntry<TVariables extends ParamData, S extends FilterSchema | un
109
109
  activeQuerySchema?: S;
110
110
  };
111
111
  export type RouterRedirectStatus = 301 | 302;
112
- export type MatchedRoute<TVariables extends ParamData, TContext = unknown> = {
112
+ export type MatchedRoute<TVariables extends ParamData> = {
113
113
  match: RegExpExecArray;
114
- route: FlatRoute<TVariables, TContext>;
114
+ route: FlatRoute<TVariables>;
115
115
  };
116
116
  export type Redirect = {
117
117
  path?: string;
118
118
  to: string;
119
119
  status?: RouterRedirectStatus;
120
120
  };
121
+ export type RouteNode = {
122
+ children?: readonly (RouteNode | Redirect)[];
123
+ path?: string;
124
+ prepare?: (params: PrepareParams<any, any, any>) => unknown;
125
+ querySchema?: FilterSchema;
126
+ render?: (opts: RouteRenderOpts<any, any, any, any>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>;
127
+ resourcePage?: ResourcePage | null;
128
+ };
121
129
  export type PrepareResult = unknown;
122
130
  export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
123
- match: RouterMatchedRoute<TVariables, TContext>;
124
- matchedRoute: FlatRoute<TVariables, TContext>;
131
+ match: RouterMatchedRoute<TVariables>;
132
+ matchedRoute: FlatRoute<TVariables>;
125
133
  context: TContext;
126
134
  resourcePage?: ResourcePage | null;
127
135
  variables: TVariables;
@@ -129,8 +137,8 @@ export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape ex
129
137
  };
130
138
  export type RoutePrepareArgs<TContext, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = PrepareParams<TContext, TVariables, TQueryShape>;
131
139
  export type RoutePrepare<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = BivariantCallback<(params: PrepareParams<TContext, TVariables, TQueryShape>) => MaybePromise<TPrepared>>;
132
- export type Route<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = {
133
- children?: (UnknownRoute<TContext> | Redirect)[];
140
+ export type Route<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined, TChildren extends readonly (RouteNode | Redirect)[] | undefined = readonly (RouteNode | Redirect)[] | undefined> = {
141
+ children?: TChildren;
134
142
  resourcePage?: ResourcePage | null;
135
143
  path?: string;
136
144
  prepare?: RoutePrepare<TContext, TPrepared, TVariables, TQueryShape>;
@@ -183,24 +191,21 @@ export type TypedFilterActions<S extends FilterSchema> = {
183
191
  replace?: boolean;
184
192
  }) => void;
185
193
  };
186
- export type RouteTreeNode = {
187
- path?: string;
188
- children?: readonly unknown[];
189
- querySchema?: FilterSchema | undefined;
190
- };
194
+ export type RouteTreeNode = RouteNode;
191
195
  export type UnknownRoute<TContext = unknown> = Route<TContext, unknown>;
192
- export type AnyRoute<TContext = unknown> = UnknownRoute<TContext>;
196
+ export type AnyRoute = RouteNode;
193
197
  export type ChildRouteOf<R> = R extends {
194
198
  children?: readonly (infer C)[];
195
199
  } ? Extract<C, RouteTreeNode> : never;
196
200
  export type RouteTreeRouteUnion<R> = R extends RouteTreeNode ? R | RouteTreeRouteUnion<ChildRouteOf<R>> : never;
197
201
  export type RouteUnion<Routes extends readonly unknown[]> = RouteTreeRouteUnion<Routes[number]>;
198
- type RouteTypeParts<R> = R extends Route<infer TContext, infer TPrepared, infer TVars, infer TQuery, infer TSchema> ? {
202
+ type RouteTypeParts<R> = R extends Route<infer TContext, infer TPrepared, infer TVars, infer TQuery, infer TSchema, infer TChildren extends readonly (RouteNode | Redirect)[] | undefined> ? {
199
203
  context: TContext;
200
204
  prepared: TPrepared;
201
205
  variables: TVars;
202
206
  query: TQuery;
203
207
  schema: TSchema;
208
+ children: TChildren;
204
209
  } : never;
205
210
  export type PreparedOf<R> = RouteTypeParts<R>['prepared'];
206
211
  export type VariablesOf<R> = RouteTypeParts<R>['variables'];
@@ -209,38 +214,22 @@ export type PathOf<R> = R extends {
209
214
  path?: infer P;
210
215
  } ? P extends string ? P : never : never;
211
216
  export type PathsOf<Routes extends readonly unknown[]> = PathOf<RouteUnion<Routes>>;
212
- export type PreparedMap<Routes extends readonly unknown[]> = {
213
- [K in PathsOf<Routes>]: PreparedOf<Extract<RouteUnion<Routes>, {
214
- path?: K;
215
- }>> | undefined;
216
- };
217
- export type RouteForPath<Routes extends readonly unknown[], P extends PathsOf<Routes>> = Extract<RouteUnion<Routes>, {
218
- path?: P;
219
- }>;
220
- export type PreparedValueForPath<Routes extends readonly unknown[], P extends PathsOf<Routes>> = PreparedOf<RouteForPath<Routes, P>> | undefined;
217
+ export type PreparedMap<Routes extends readonly unknown[]> = Record<PathsOf<Routes>, PreparedOf<RouteUnion<Routes>> | undefined>;
221
218
  export type PreparedSegmentsMap<Routes extends readonly unknown[]> = Record<PathsOf<Routes>, PreparedRouteSegment[]>;
222
- export type QueryShapeMap<Routes extends readonly unknown[]> = {
223
- [K in PathsOf<Routes>]: QueryShapeOf<Extract<RouteUnion<Routes>, {
224
- path?: K;
225
- }>>;
226
- };
219
+ export type QueryShapeMap<Routes extends readonly unknown[]> = Record<PathsOf<Routes>, QueryShapeOf<RouteUnion<Routes>>>;
227
220
  export type SchemaOf<R> = R extends {
228
221
  querySchema?: infer S;
229
222
  } ? S extends FilterSchema ? S : undefined : undefined;
230
223
  export type FiltersOf<R> = SchemaOf<R> extends FilterSchema ? InferFilterResult<SchemaOf<R>> : Record<string, never>;
231
- export type FiltersMap<Routes extends readonly unknown[]> = {
232
- [K in PathsOf<Routes>]: FiltersOf<Extract<RouteUnion<Routes>, {
233
- path?: K;
234
- }>>;
235
- };
224
+ export type FiltersMap<Routes extends readonly unknown[]> = Record<PathsOf<Routes>, FiltersOf<RouteUnion<Routes>>>;
236
225
  export type PreparedAccess<Routes extends readonly unknown[]> = Record<never, never> & {
237
226
  getPrepared: (path: string) => PreparedOf<RouteUnion<Routes>> | undefined;
238
227
  getPreparedSegments: (path: string) => PreparedRouteSegmentSnapshot[];
239
228
  };
240
- export type NavigateInputForPath<Routes extends readonly unknown[], P extends PathsOf<Routes>> = {
241
- pathname: P;
242
- query?: QueryShapeMap<Routes>[P];
243
- filters?: FiltersMap<Routes>[P];
229
+ export type NavigateInputForPath<Routes extends readonly unknown[]> = {
230
+ pathname: PathsOf<Routes>;
231
+ query?: QueryShapeOf<RouteUnion<Routes>>;
232
+ filters?: FiltersOf<RouteUnion<Routes>>;
244
233
  replace?: boolean;
245
234
  };
246
235
  export type NavigateInputUntyped = {
@@ -250,7 +239,7 @@ export type NavigateInputUntyped = {
250
239
  replace?: boolean;
251
240
  };
252
241
  export interface NavigateOverloads<Routes extends readonly unknown[]> {
253
- <P extends PathsOf<Routes>>(opts: NavigateInputForPath<Routes, P>): void;
242
+ (opts: NavigateInputForPath<Routes>): void;
254
243
  (opts: NavigateInputUntyped): void;
255
244
  }
256
245
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EACV,MAAM,IAAI,YAAY,EACtB,YAAY,IAAI,iBAAiB,EACjC,UAAU,IAAI,gBAAgB,EAC9B,UAAU,IAAI,gBAAgB,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,mBAAmB,CAAC;IACrC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,CAAC;CACf,CAAC;AAMF,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,SAAS,IAAI;IAEzD,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI;IAE7D,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzB,MAAM,EAAE,UAAU,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAClE,KAAK,EAAE,MAAM,KACV,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AAExB,KAAK,iBAAiB,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAAI;IACjE,cAAc,EAAE,EAAE,CAAC;CACpB,CAAC,gBAAgB,CAAC,CAAC;AAOpB,MAAM,MAAM,eAAe,CACzB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,eAAe,EAAE,oBAAoB,CACnC,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,aAAa,EAAE,oBAAoB,CACjC,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAElD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE5C,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAEpC,OAAO,EAAE,QAAQ,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAOF,MAAM,MAAM,WAAW,CACrB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,iBAAiB,CACnB,CACE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,KAEjE,YAAY,GACZ,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAC7C,CAAC;AAGF,MAAM,MAAM,eAAe,CACzB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAKlE,MAAM,MAAM,oBAAoB,CAC9B,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IAErB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,CAAC,QAAQ,GAAG,OAAO,IAClD,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB;IAEF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE7C,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAGF,MAAM,MAAM,aAAa,CACvB,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAE7C,MAAM,MAAM,4BAA4B,CACtC,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEtE,MAAM,MAAM,0BAA0B,CACpC,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB;IACF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAMrD,MAAM,MAAM,UAAU,CACpB,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,QAAQ,GAAG,OAAO,IAChB;IAEF,aAAa,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO,EAAE,QAAQ,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE7C,aAAa,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,QAAQ,CAAC;IAIhB,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IAEzE,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEvC,iBAAiB,CAAC,EAAE,CAAC,CAAC;CACvB,CAAC;AAOF,MAAM,MAAM,oBAAoB,GAAG,GAAG,GAAG,GAAG,CAAC;AAM7C,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,SAAS,IAAI;IAEvD,KAAK,EAAE,eAAe,CAAC;IAEvB,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC9B,CAAC;AAKF,MAAM,MAAM,QAAQ,GAAG;IAErB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAEvC,YAAY,GACZ,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC,CAAC;AAKF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAMpC,MAAM,MAAM,aAAa,CACvB,QAAQ,EACR,UAAU,SAAS,SAAS,EAC5B,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAEpC,OAAO,EAAE,QAAQ,CAAC;IAElB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,SAAS,EAAE,UAAU,CAAC;IAEtB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,EACR,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAOrD,MAAM,MAAM,YAAY,CACtB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,iBAAiB,CACnB,CACE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,KACrD,YAAY,CAAC,SAAS,CAAC,CAC7B,CAAC;AAOF,MAAM,MAAM,KAAK,CACf,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,EACzD,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,SAAS,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,GAC3D,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GACjC,SAAS,IACX;IAiBF,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAErE,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnE,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,QAAQ,EAAE,YAAY,CAAC;IAEvB,aAAa,EAAE,kBAAkB,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAE9D,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;CACjE,CAAC;AAMF,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,QAAQ,GAAG,OAAO,IAChB,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,EACzD,QAAQ,GAAG,OAAO,IAChB;IAEF,OAAO,EAAE,cAAc,CAAC;IAExB,GAAG,EAAE,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7C,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAEzC,SAAS,EAAE,CACT,QAAQ,EAAE,iBAAiB,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,KACjD,MAAM,IAAI,CAAC;IAEhB,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,WAAW,CAAC;QAEpB,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QACzE,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,KAAK,IAAI,CAAC;CACZ,CAAC;AAKF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,GAC/B,aAAa,CAAC,GAAG,CAAC,CAAC;AAKvB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEnE,MAAM,MAAM,qBAAqB,CAC/B,SAAS,SAAS,aAAa,GAAG,aAAa,IAC7C,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAGhC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,GAAG,SAAS,IACzD,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExE,YAAY,EAAE,YAAY,EAAE,CAAC;AAG7B,YAAY,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC;AAQ/C,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,YAAY,IAAI;IAEvD,GAAG,EAAE,CACH,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1B,CAAC,SAAS,MAAM,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAE7D,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAC1D,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,MAAM,EAAE,CACN,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1B,CAAC,SAAS,MAAM,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAE7D,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,CAAC,EACZ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,KAAK,EAAE,CACL,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/C,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAMtC,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAGxE,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAGjC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,GACvE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,GACzB,KAAK,CAAC;AAGV,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GACxD,CAAC,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,KAAK,CAAC;AAGV,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,mBAAmB,CAC7E,MAAM,CAAC,MAAM,CAAC,CACf,CAAC;AAGF,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,KAAK,CACb,MAAM,QAAQ,EACd,MAAM,SAAS,EACf,MAAM,KAAK,EACX,MAAM,MAAM,EACZ,MAAM,OAAO,EACb,MAAM,SAAS,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,CACtE,GACG;IACE,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB,GACD,KAAK,CAAC;AAGZ,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAE5D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAGzD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD,CAAC,SAAS,MAAM,GACd,CAAC,GACD,KAAK,GACP,KAAK,CAAC;AAGV,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CAC7D,UAAU,CAAC,MAAM,CAAC,CACnB,CAAC;AAGF,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACjE,OAAO,CAAC,MAAM,CAAC,EACf,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAC3C,CAAC;AAGF,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACzE,OAAO,CAAC,MAAM,CAAC,EACf,oBAAoB,EAAE,CACvB,CAAC;AAGF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACnE,OAAO,CAAC,MAAM,CAAC,EACf,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACjC,CAAC;AAGF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GACzD,CAAC,SAAS,YAAY,GACpB,CAAC,GACD,SAAS,GACX,SAAS,CAAC;AAGd,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,GAC5B,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG5B,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CAChE,OAAO,CAAC,MAAM,CAAC,EACf,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC9B,CAAC;AAGF,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACpE,KAAK,EACL,KAAK,CACN,GAAG;IAEF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAE1E,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,4BAA4B,EAAE,CAAC;CAEvE,CAAC;AAGF,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI;IACpE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAGF,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE;IAClE,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3C,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpC"}
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgU2NoZW1hIGFzIEZpbHRlclNjaGVtYSxcbiAgSW5mZXJGaWx0ZXJzIGFzIEluZmVyRmlsdGVyUmVzdWx0LFxuICBJbmZlckZpZWxkIGFzIEluZmVyRmlsdGVyRmllbGQsXG4gIERpYWdub3N0aWMgYXMgRmlsdGVyRGlhZ25vc3RpYyxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5JztcbmltcG9ydCB0eXBlIHsgTWF0Y2gsIE1hdGNoRnVuY3Rpb24sIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGUgfSBmcm9tICcuL2J1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2UgfSBmcm9tICcuL1Jlc291cmNlUGFnZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnLi9oaXN0b3J5L2luZGV4LmpzJztcblxuZXhwb3J0IHR5cGUgTWF5YmVQcm9taXNlPFQ+ID0gVCB8IFByb21pc2U8VD47XG5leHBvcnQgdHlwZSBSYXdRdWVyeVZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW107XG5leHBvcnQgdHlwZSBSYXdRdWVyeSA9IFJlY29yZDxzdHJpbmcsIFJhd1F1ZXJ5VmFsdWU+O1xuZXhwb3J0IHR5cGUgVW5rbm93blF1ZXJ5U2hhcGUgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbmV4cG9ydCB0eXBlIFVua25vd25GaWx0ZXJzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIEFzeW5jUmVzb3VyY2VTdGF0dXMgPSAnaWRsZScgfCAncGVuZGluZycgfCAncmVzb2x2ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IHR5cGUgUmVhZGFibGVSZXNvdXJjZTxUPiA9IHtcbiAgZ2V0OiAoKSA9PiBUIHwgdW5kZWZpbmVkO1xuICBnZXRFcnJvcjogKCkgPT4gdW5rbm93bjtcbiAgZ2V0U3RhdHVzOiAoKSA9PiBBc3luY1Jlc291cmNlU3RhdHVzO1xuICBsb2FkOiAoKSA9PiBQcm9taXNlPFQ+O1xuICByZWFkOiAoKSA9PiBUO1xufTtcblxuLyoqXG4gKiBJbnB1dCB0eXBlIGZvciBjcmVhdGluZyBhIEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBGbGF0Um91dGVJbnB1dDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLCBUQ29udGV4dCA9IHVua25vd24+ID0ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcmVkaXJlY3RUbz86IHN0cmluZztcbiAgLyoqIEZ1bmN0aW9uIHRvIG1hdGNoIFVSTCBwYXRocyBhZ2FpbnN0IHRoaXMgcm91dGUgcGF0dGVybiAqL1xuICBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRWYXJpYWJsZXM+O1xuICAvKiogTmVzdGVkIHJvdXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB3aXRoaW4gdGhpcyByb3V0ZSAqL1xuICByb3V0ZXM6IFVua25vd25Sb3V0ZTxUQ29udGV4dD5bXTtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyBhbmQgbWV0YWRhdGEuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTWF0Y2hlZFJvdXRlPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoIHJlc3VsdCBmcm9tIHBhdGgtdG8tcmVnZXhwICovXG4gIG1hdGNoOiBNYXRjaDxUVmFyaWFibGVzPjtcbiAgLyoqIEV4dHJhY3RlZCBwYXJhbWV0ZXJzIGZyb20gdGhlIFVSTCBwYXRoICovXG4gIHBhcmFtczogVFZhcmlhYmxlcztcbiAgLyoqIFRoZSBtYXRjaGVkIHBhdGggc3RyaW5nICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzLCBUQ29udGV4dD47XG59O1xuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSByb3V0ZSBjb21wb25lbnQuXG4gKiBAdGVtcGxhdGUgVFByb3BzIC0gVGhlIHByb3BzIHR5cGUgZm9yIHRoZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZWFjdENvbXBvbmVudDxUUHJvcHMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoXG4gIHByb3BzOiBUUHJvcHMsXG4pID0+IEpTWC5FbGVtZW50IHwgbnVsbDtcblxudHlwZSBCaXZhcmlhbnRDYWxsYmFjazxGbiBleHRlbmRzICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duPiA9IHtcbiAgYml2YXJpYW5jZUhhY2s6IEZuO1xufVsnYml2YXJpYW5jZUhhY2snXTtcblxuLyoqXG4gKiBPcHRpb25zIHBhc3NlZCB0byBhIHJvdXRlIHJlbmRlciBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlck9wdHM8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgLyoqIE9wdGlvbmFsIGNvbXBvbmVudCB0byByZW5kZXIgKGZyb20gUmVzb3VyY2VQYWdlKSAqL1xuICBDb21wb25lbnQ/OiBSb3V0ZVJlYWN0Q29tcG9uZW50O1xuICAvKiogRGF0YSBwcmVwYXJlZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uICovXG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIC8qKiBUaGUgcHJlcGFyZWQgc2VnbWVudCB0aGF0IGlzIGJlaW5nIHJlbmRlcmVkICovXG4gIHByZXBhcmVkU2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gICAgVENvbnRleHQsXG4gICAgVFByZXBhcmVkLFxuICAgIFRWYXJpYWJsZXMsXG4gICAgVFF1ZXJ5U2hhcGVcbiAgPjtcbiAgLyoqIEFsaWFzIGtlcHQgZm9yIG1pZ3JhdGlvbiBjb21wYXRpYmlsaXR5ICovXG4gIHByZXBhcmVkUm91dGU6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBUaGUgZnVsbCBwcmVwYXJlZCBjaGFpbiBmb3IgdGhlIGN1cnJlbnQgbWF0Y2ggKi9cbiAgcHJlcGFyZWRTZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEluZGV4IG9mIHRoZSBjdXJyZW50IHNlZ21lbnQgaW4gdGhlIHByZXBhcmVkIGNoYWluICovXG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGxlYWYgc2VnbWVudCBvZiB0aGUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgbGVhZlNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzLCBUQ29udGV4dD4gfCBudWxsO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSYXcgcXVlcnkgb2JqZWN0IChQaGFzZSAyIGdlbmVyaWMgcGFyc2luZykgKi9cbiAgcmF3UXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT5cbiAgICB8IFJlYWN0RWxlbWVudFxuICAgIHwgbnVsbFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCBQcm9taXNlPFJlYWN0RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ+XG4+O1xuXG4vKiogQWxpYXMgZm9yIHJlbmRlciBhcmdzIChrZXB0IGZvciBwdWJsaWMgQVBJIGNsYXJpdHkpLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJBcmdzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG5cbi8qKlxuICogQSBzaW5nbGUgYWN0aXZlIHByZXBhcmVkIHJvdXRlIHNlZ21lbnQgd2l0aGluIHRoZSBjdXJyZW50IHJvdXRlIGNoYWluLlxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIFRoZSBwYXRoIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIEFic29sdXRlIHJvdXRlIHBhdGggZm9yIHRoZSBjdXJyZW50IHNlZ21lbnQgd2hlbiBrbm93biAqL1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgLyoqIE9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSBhY3RpdmUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBBc3luYyByZXNvdXJjZSBleHBvc2luZyB0aGUgcm91dGUncyBwcmVwYXJlZCB2YWx1ZSAqL1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlPFRQcmVwYXJlZD47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgc2NoZW1hIGRlY2xhcmVkIGJ5IHRoZSByb3V0ZSBzZWdtZW50ICovXG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlID0gUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dCA9IHVua25vd24+ID1cbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3QgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIHRoZSBvcmRlcmVkIGNoYWluIG9mIG5lc3RlZCBhY3RpdmUgc2VnbWVudHMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMsIFRDb250ZXh0PiB8IG51bGw7XG4gIC8qKiBPcmRlcmVkIGFjdGl2ZSBwcmVwYXJlZCBzZWdtZW50cyBmcm9tIG91dGVybW9zdCB0byBpbm5lcm1vc3QgKi9cbiAgc2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbiAqL1xuICByb3V0ZXM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG59O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBrZXB0IGR1cmluZyB0aGUgc2VnbWVudC1vcmllbnRlZCBtaWdyYXRpb24uICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgcGF0aD86IHN0cmluZztcbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaFJvdXRlID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcywgVENvbnRleHQ+IHwgbnVsbDtcbiAgc2VnbWVudHM6IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG4gIHJvdXRlczogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaDxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuLyoqXG4gKiBDb21wbGV0ZSByb3V0ZSBlbnRyeSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlRW50cnk8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIC8qKiBUaGUgcHJlcGFyZWQgbWF0Y2ggd2l0aCBsb2FkZWQgZGF0YSBhbmQgY29tcG9uZW50cyAqL1xuICBwcmVwYXJlZE1hdGNoOiBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHRoaXMgZW50cnkgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBDdXJyZW50IGJyb3dzZXIgbG9jYXRpb24gKi9cbiAgbG9jYXRpb246IExvY2F0aW9uO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMsIFRDb250ZXh0PiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogTGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdW5pZmllZCBmaWx0ZXJzIGhhbmRsZSB0eXBlZCBhY2Nlc3MgKi9cbiAgLy8gdHlwZWRRdWVyeT86IG5ldmVyO1xuICAvKiogUGFyc2VkIGZpbHRlcnMgb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgZGVlcGVzdCBhY3RpdmUgcXVlcnlTY2hlbWEgKGlmIGFueSkgKi9cbiAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsIFRDb250ZXh0ID0gdW5rbm93bj4gPSB7XG4gIC8qKiBUaGUgcmVnZXggbWF0Y2ggcmVzdWx0ICovXG4gIG1hdGNoOiBSZWdFeHBFeGVjQXJyYXk7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcywgVENvbnRleHQ+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVSZXN1bHQgPSB1bmtub3duO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVQYXJhbXM8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgbWF0Y2hlZFJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBFeHRyYWN0ZWQgVVJMIHBhcmFtZXRlcnMgKi9cbiAgdmFyaWFibGVzOiBUVmFyaWFibGVzO1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0ICovXG4gIHF1ZXJ5OiBUUXVlcnlTaGFwZTtcbn07XG5cbi8qKiBBbGlhcyBmb3IgcHJlcGFyZSBhcmdzIChrZXB0IGZvciBwdWJsaWMgQVBJIGNsYXJpdHkpLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlQXJnczxcbiAgVENvbnRleHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGZvciBhIHJvdXRlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgZGF0YSB0aGlzIGZ1bmN0aW9uIHJldHVybnNcbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmU8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gQml2YXJpYW50Q2FsbGJhY2s8XG4gIChcbiAgICBwYXJhbXM6IFByZXBhcmVQYXJhbXM8VENvbnRleHQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPixcbiAgKSA9PiBNYXliZVByb21pc2U8VFByZXBhcmVkPlxuPjtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSByb3V0ZSBpbiB0aGUgcm91dGVyLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuPiA9IHtcbiAgLyoqXG4gICAqIE5lc3RlZCBjaGlsZCByb3V0ZXMgb3IgcmVkaXJlY3RzLlxuICAgKlxuICAgKiBJTVBPUlRBTlQ6IFRoaXMgdXNlZCB0byBiZSB0eXBlZCBhcyBgKFJvdXRlPGFueSwgUHJlcGFyZVJlc3VsdD4gfCBSZWRpcmVjdClbXWAgd2hpY2hcbiAgICogd2lkZW5lZCAoZXJhc2VkKSB0aGUgZ2VuZXJpYyBwYXJhbWV0ZXIgdHlwZXMgKG5vdGFibHkgdGhlIGBUVmFyaWFibGVzYCBvZiBlYWNoXG4gICAqIGNoaWxkKS4gVGhhdCBjYXVzZWQgVHlwZVNjcmlwdCB0byB0cmVhdCBldmVyeSBjaGlsZCByb3V0ZSdzIGBwcmVwYXJlYCBjYWxsYmFja1xuICAgKiBhcyBhY2NlcHRpbmcgdGhlIGRlZmF1bHQgYFBhcmFtRGF0YWAgc2hhcGUgKGVmZmVjdGl2ZWx5IGBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsc3RyaW5nfHN0cmluZ1tdPj5gKS5cbiAgICogV2hlbiB1c2VyIGNvZGUgc3BlY2lmaWVkIGEgbW9yZSBzcGVjaWZpYyBwYXJhbWV0ZXIgb2JqZWN0IChlLmcuIGB7IHNsdWc6IHN0cmluZyB9YClcbiAgICogZm9yIGEgcGF0aCBsaWtlIGA6c2x1Z2AsIHRoZSBmdW5jdGlvbiB0eXBlIGJlY2FtZSBub27igJFhc3NpZ25hYmxlIGJlY2F1c2UgaXRzXG4gICAqIHBhcmFtZXRlciB3YXMgc3RyaWN0ZXIgdGhhbiB0aGUgd2lkZW5lZCB2ZXJzaW9uLiBCeSBzd2l0Y2hpbmcgdG8gYEFueVJvdXRlYCB3ZVxuICAgKiByZXRhaW4gYGFueWAgaW4gdGhlIGVyYXNlZCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGEgY29uY3JldGUgYFBhcmFtRGF0YWAsIHdoaWNoXG4gICAqIGFsbG93cyBzdHJpY3RlciBjaGlsZCBgdmFyaWFibGVzYCBzaGFwZXMgd2l0aG91dCBjb25mbGljdC5cbiAgICpcbiAgICogVXNpbmcgYEFueVJvdXRlYCBwdXJwb3NlbHkgcHJlc2VydmVzIGluZGVwZW5kZW5jZSBvZiBlYWNoIHJvdXRlJ3MgZ2VuZXJpY1xuICAgKiBwYXJhbWV0ZXJzIHdoaWxlIHN0aWxsIGtlZXBpbmcgcnVudGltZSByZXByZXNlbnRhdGlvbiBpZGVudGljYWwuXG4gICAqL1xuICBjaGlsZHJlbj86IChVbmtub3duUm91dGU8VENvbnRleHQ+IHwgUmVkaXJlY3QpW107XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgYmVmb3JlIHJlbmRlcmluZyAqL1xuICBwcmVwYXJlPzogUm91dGVQcmVwYXJlPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVW5pZmllZCBzY2hlbWEgKGZpbHRlciAvIHF1ZXJ5KSAqL1xuICBxdWVyeVNjaGVtYT86IFM7XG59O1xuXG4vKipcbiAqIFByb3BzIHBhc3NlZCB0byBSb3V0ZUNvbXBvbmVudCBpbnN0YW5jZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVDb21wb25lbnRQcm9wczxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyICovXG4gIGNoaWxkcmVuOiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBSb3V0ZXIgY29udGV4dCBjb250YWluaW5nIG5hdmlnYXRpb24gYW5kIHN0YXRlICovXG4gIHJvdXRlckNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxUVmFyaWFibGVzLCBTLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBUaGUgcm91dGUgY29uZmlndXJhdGlvbiAqL1xuICByb3V0ZTogUm91dGU8dW5rbm93biwgdW5rbm93biwgUGFyYW1EYXRhLCBVbmtub3duUXVlcnlTaGFwZSwgUz47XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciByb3V0ZSBjaGFuZ2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnNjcmliZUNhbGxiYWNrPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gKG5leHRFbnRyeTogUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByZWxvYWRUYXJnZXQgPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSb3V0ZXIgY29udGV4dCB0eXBlIHRoYXQgcHJvdmlkZXMgbmF2aWdhdGlvbiBhbmQgc3RhdGUgbWFuYWdlbWVudC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0aW5nQ29udGV4dFR5cGU8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIEJyb3dzZXIgaGlzdG9yeSBpbnN0YW5jZSBmb3IgbmF2aWdhdGlvbiAqL1xuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeTtcbiAgLyoqIEdldCB0aGUgY3VycmVudCByb3V0ZSBlbnRyeSAqL1xuICBnZXQ6ICgpID0+IFJvdXRlRW50cnk8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+O1xuICAvKiogUHJlbG9hZCBjb2RlIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWRDb2RlOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogUHJlbG9hZCBjb2RlIGFuZCBkYXRhIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWQ6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyAoc2NoZW1hIGRlcml2YWJsZSwgbm90IG5lZWRlZCBpbiBzaWduYXR1cmUpICovXG4gIHN1YnNjcmliZTogKFxuICAgIGNhbGxiYWNrOiBTdWJzY3JpYmVDYWxsYmFjazxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4sXG4gICkgPT4gKCkgPT4gdm9pZDtcbiAgLyoqIE5hdmlnYXRlIHdpdGggb3B0aW9uYWwgcGF0aG5hbWUgYW5kIHR5cGVkL3JhdyBxdWVyeSBvYmplY3QgKi9cbiAgbmF2aWdhdGU6IChvcHRzOiB7XG4gICAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gICAgcXVlcnk/OiBUUXVlcnlTaGFwZTtcbiAgICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIHRoZSBhY3RpdmUgcXVlcnlTY2hlbWEgKi9cbiAgICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gICAgcmVwbGFjZT86IGJvb2xlYW47XG4gIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIFJldHVybiB0eXBlIGZvciByZXNvdXJjZSBwYWdlIGxvYWRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZVJldHVybiA9XG4gIHwgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfVxuICB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0ge1xuICBwYXRoPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IHJlYWRvbmx5IHVua25vd25bXTtcbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGU8VENvbnRleHQgPSB1bmtub3duPiA9IFVua25vd25Sb3V0ZTxUQ29udGV4dD47XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hXG4gID5cbiAgICA/IHtcbiAgICAgICAgY29udGV4dDogVENvbnRleHQ7XG4gICAgICAgIHByZXBhcmVkOiBUUHJlcGFyZWQ7XG4gICAgICAgIHZhcmlhYmxlczogVFZhcnM7XG4gICAgICAgIHF1ZXJ5OiBUUXVlcnk7XG4gICAgICAgIHNjaGVtYTogVFNjaGVtYTtcbiAgICAgIH1cbiAgICA6IG5ldmVyO1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkT2Y8Uj4gPSBSb3V0ZVR5cGVQYXJ0czxSPlsncHJlcGFyZWQnXTtcbi8qKiBFeHRyYWN0IHRoZSB2YXJpYWJsZXMgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFZhcmlhYmxlc09mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ZhcmlhYmxlcyddO1xuLyoqIEV4dHJhY3QgdGhlIHF1ZXJ5IHNoYXBlIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBRdWVyeVNoYXBlT2Y8Uj4gPSBSb3V0ZVR5cGVQYXJ0czxSPlsncXVlcnknXTtcblxuLyoqIFBhdGggbGl0ZXJhbCB0eXBlIGlmIHByZXNlbnQgKi9cbmV4cG9ydCB0eXBlIFBhdGhPZjxSPiA9IFIgZXh0ZW5kcyB7IHBhdGg/OiBpbmZlciBQIH1cbiAgPyBQIGV4dGVuZHMgc3RyaW5nXG4gICAgPyBQXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vKiogVW5pb24gb2YgYWxsIGNvbmNyZXRlIHBhdGggc3RyaW5ncyBmcm9tIGEgdHVwbGUvYXJyYXkgb2Ygcm91dGVzIChyZWN1cnNpdmUpLiAqL1xuZXhwb3J0IHR5cGUgUGF0aHNPZjxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUGF0aE9mPFxuICBSb3V0ZVVuaW9uPFJvdXRlcz5cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBwcmVwYXJlZCB0eXBlICh1bmRlZmluZWQgaWYgcm91dGUgbGFja3MgcHJlcGFyZSkgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSB7XG4gIFtLIGluIFBhdGhzT2Y8Um91dGVzPl06XG4gICAgfCBQcmVwYXJlZE9mPEV4dHJhY3Q8Um91dGVVbmlvbjxSb3V0ZXM+LCB7IHBhdGg/OiBLIH0+PlxuICAgIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVGb3JQYXRoPFxuICBSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sXG4gIFAgZXh0ZW5kcyBQYXRoc09mPFJvdXRlcz4sXG4+ID0gRXh0cmFjdDxSb3V0ZVVuaW9uPFJvdXRlcz4sIHsgcGF0aD86IFAgfT47XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkVmFsdWVGb3JQYXRoPFxuICBSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sXG4gIFAgZXh0ZW5kcyBQYXRoc09mPFJvdXRlcz4sXG4+ID0gUHJlcGFyZWRPZjxSb3V0ZUZvclBhdGg8Um91dGVzLCBQPj4gfCB1bmRlZmluZWQ7XG5cbi8qKiBNYXAgcGF0aCAtPiBvcmRlcmVkIHByZXBhcmVkIHNlZ21lbnQgdHVwbGUgb3IgYXJyYXkgc2hhcGUuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZFNlZ21lbnRzTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnRbXVxuPjtcblxuLyoqIE1hcCBwYXRoIC0+IHF1ZXJ5IHNoYXBlICovXG5leHBvcnQgdHlwZSBRdWVyeVNoYXBlTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSB7XG4gIFtLIGluIFBhdGhzT2Y8Um91dGVzPl06IFF1ZXJ5U2hhcGVPZjxcbiAgICBFeHRyYWN0PFJvdXRlVW5pb248Um91dGVzPiwgeyBwYXRoPzogSyB9PlxuICA+O1xufTtcblxuLyoqIEV4dHJhY3Qgc2NoZW1hIGZyb20gYSByb3V0ZSAodW5kZWZpbmVkIGlmIGFic2VudCkgKi9cbmV4cG9ydCB0eXBlIFNjaGVtYU9mPFI+ID0gUiBleHRlbmRzIHsgcXVlcnlTY2hlbWE/OiBpbmZlciBTIH1cbiAgPyBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBTXG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBGaWx0ZXJzIGluZmVycmVkIGZyb20gdGhlIHJvdXRlJ3Mgc2NoZW1hICovXG5leHBvcnQgdHlwZSBGaWx0ZXJzT2Y8Uj4gPVxuICBTY2hlbWFPZjxSPiBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gSW5mZXJGaWx0ZXJSZXN1bHQ8U2NoZW1hT2Y8Uj4+XG4gICAgOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbi8qKiBNYXAgcGF0aCAtPiBpbmZlcnJlZCBmaWx0ZXJzIHR5cGUgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgW0sgaW4gUGF0aHNPZjxSb3V0ZXM+XTogRmlsdGVyc09mPEV4dHJhY3Q8Um91dGVVbmlvbjxSb3V0ZXM+LCB7IHBhdGg/OiBLIH0+Pjtcbn07XG5cbi8qKiBSdW50aW1lIGhlbHBlciBpbnRlcmZhY2UgYXVnbWVudGF0aW9uIGZvciByb3V0ZXIgY29udGV4dCAoYWRkZWQgaW4gY3JlYXRlUm91dGVyKSAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRBY2Nlc3M8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgbmV2ZXIsXG4gIG5ldmVyXG4+ICYge1xuICAvKiogUmV0cmlldmUgdGhlIHByZXBhcmVkIG9iamVjdCBmb3IgYSBjb25jcmV0ZSBwYXRoIChpZiBjdXJyZW50IG1hdGNoIGluY2x1ZGVzIGl0KSAqL1xuICBnZXRQcmVwYXJlZDogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkO1xuICAvKiogUmV0cmlldmUgdGhlIGZ1bGwgcHJlcGFyZWQgc2VnbWVudCBjaGFpbiBmb3IgYSBjb25jcmV0ZSBwYXRoLiAqL1xuICBnZXRQcmVwYXJlZFNlZ21lbnRzOiAocGF0aDogc3RyaW5nKSA9PiBQcmVwYXJlZFJvdXRlU2VnbWVudFNuYXBzaG90W107XG4gIC8vIGdldFR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdXNlIGZpbHRlcnMvcXVlcnkgZGlyZWN0bHlcbn07XG5cbi8qKiBJbnB1dCBzaGFwZSBmb3IgYSBuYXZpZ2F0aW9uIHRvIGEgc3BlY2lmaWMgcGF0aCAodHlwZWQgcXVlcnkpICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxcbiAgUm91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLFxuICBQIGV4dGVuZHMgUGF0aHNPZjxSb3V0ZXM+LFxuPiA9IHtcbiAgcGF0aG5hbWU6IFA7XG4gIHF1ZXJ5PzogUXVlcnlTaGFwZU1hcDxSb3V0ZXM+W1BdO1xuICBmaWx0ZXJzPzogRmlsdGVyc01hcDxSb3V0ZXM+W1BdO1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIDxQIGV4dGVuZHMgUGF0aHNPZjxSb3V0ZXM+PihvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXMsIFA+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtcbiAgU2NoZW1hIGFzIEZpbHRlclNjaGVtYSxcbiAgSW5mZXJGaWx0ZXJzIGFzIEluZmVyRmlsdGVyUmVzdWx0LFxuICBJbmZlckZpZWxkIGFzIEluZmVyRmlsdGVyRmllbGQsXG4gIERpYWdub3N0aWMgYXMgRmlsdGVyRGlhZ25vc3RpYyxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5JztcbmltcG9ydCB0eXBlIHsgTWF0Y2gsIE1hdGNoRnVuY3Rpb24sIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0Um91dGUgfSBmcm9tICcuL2J1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhZ2UgfSBmcm9tICcuL1Jlc291cmNlUGFnZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnLi9oaXN0b3J5L2luZGV4LmpzJztcblxuZXhwb3J0IHR5cGUgTWF5YmVQcm9taXNlPFQ+ID0gVCB8IFByb21pc2U8VD47XG5leHBvcnQgdHlwZSBSYXdRdWVyeVZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW107XG5leHBvcnQgdHlwZSBSYXdRdWVyeSA9IFJlY29yZDxzdHJpbmcsIFJhd1F1ZXJ5VmFsdWU+O1xuZXhwb3J0IHR5cGUgVW5rbm93blF1ZXJ5U2hhcGUgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbmV4cG9ydCB0eXBlIFVua25vd25GaWx0ZXJzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIEFzeW5jUmVzb3VyY2VTdGF0dXMgPSAnaWRsZScgfCAncGVuZGluZycgfCAncmVzb2x2ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IHR5cGUgUmVhZGFibGVSZXNvdXJjZTxUPiA9IHtcbiAgZ2V0OiAoKSA9PiBUIHwgdW5kZWZpbmVkO1xuICBnZXRFcnJvcjogKCkgPT4gdW5rbm93bjtcbiAgZ2V0U3RhdHVzOiAoKSA9PiBBc3luY1Jlc291cmNlU3RhdHVzO1xuICBsb2FkOiAoKSA9PiBQcm9taXNlPFQ+O1xuICByZWFkOiAoKSA9PiBUO1xufTtcblxuLyoqXG4gKiBJbnB1dCB0eXBlIGZvciBjcmVhdGluZyBhIEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBGbGF0Um91dGVJbnB1dDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBBbnlSb3V0ZVtdO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIGFuZCBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2ggcmVzdWx0IGZyb20gcGF0aC10by1yZWdleHAgKi9cbiAgbWF0Y2g6IE1hdGNoPFRWYXJpYWJsZXM+O1xuICAvKiogRXh0cmFjdGVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgVVJMIHBhdGggKi9cbiAgcGFyYW1zOiBUVmFyaWFibGVzO1xuICAvKiogVGhlIG1hdGNoZWQgcGF0aCBzdHJpbmcgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgcm91dGUgY29tcG9uZW50LlxuICogQHRlbXBsYXRlIFRQcm9wcyAtIFRoZSBwcm9wcyB0eXBlIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVhY3RDb21wb25lbnQ8VFByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBwcm9wczogVFByb3BzLFxuKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgQml2YXJpYW50Q2FsbGJhY2s8Rm4gZXh0ZW5kcyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gdW5rbm93bj4gPSB7XG4gIGJpdmFyaWFuY2VIYWNrOiBGbjtcbn1bJ2JpdmFyaWFuY2VIYWNrJ107XG5cbi8qKlxuICogT3B0aW9ucyBwYXNzZWQgdG8gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJPcHRzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHNlZ21lbnQgdGhhdCBpcyBiZWluZyByZW5kZXJlZCAqL1xuICBwcmVwYXJlZFNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBBbGlhcyBrZXB0IGZvciBtaWdyYXRpb24gY29tcGF0aWJpbGl0eSAqL1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnlTaGFwZVxuICA+O1xuICAvKiogVGhlIGZ1bGwgcHJlcGFyZWQgY2hhaW4gZm9yIHRoZSBjdXJyZW50IG1hdGNoICovXG4gIHByZXBhcmVkU2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBJbmRleCBvZiB0aGUgY3VycmVudCBzZWdtZW50IGluIHRoZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBsZWFmIHNlZ21lbnQgb2YgdGhlIHByZXBhcmVkIGNoYWluICovXG4gIGxlYWZTZWdtZW50OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD47XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSYXcgcXVlcnkgb2JqZWN0IChQaGFzZSAyIGdlbmVyaWMgcGFyc2luZykgKi9cbiAgcmF3UXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT5cbiAgICB8IFJlYWN0RWxlbWVudFxuICAgIHwgbnVsbFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCBQcm9taXNlPFJlYWN0RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ+XG4+O1xuXG4vKiogQWxpYXMgZm9yIHJlbmRlciBhcmdzIChrZXB0IGZvciBwdWJsaWMgQVBJIGNsYXJpdHkpLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJBcmdzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG5cbi8qKlxuICogQSBzaW5nbGUgYWN0aXZlIHByZXBhcmVkIHJvdXRlIHNlZ21lbnQgd2l0aGluIHRoZSBjdXJyZW50IHJvdXRlIGNoYWluLlxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIFRoZSBwYXRoIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIEFic29sdXRlIHJvdXRlIHBhdGggZm9yIHRoZSBjdXJyZW50IHNlZ21lbnQgd2hlbiBrbm93biAqL1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgLyoqIE9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSBhY3RpdmUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBBc3luYyByZXNvdXJjZSBleHBvc2luZyB0aGUgcm91dGUncyBwcmVwYXJlZCB2YWx1ZSAqL1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlPFRQcmVwYXJlZD47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgc2NoZW1hIGRlY2xhcmVkIGJ5IHRoZSByb3V0ZSBzZWdtZW50ICovXG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlID0gUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dCA9IHVua25vd24+ID1cbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3QgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIHRoZSBvcmRlcmVkIGNoYWluIG9mIG5lc3RlZCBhY3RpdmUgc2VnbWVudHMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIE9yZGVyZWQgYWN0aXZlIHByZXBhcmVkIHNlZ21lbnRzIGZyb20gb3V0ZXJtb3N0IHRvIGlubmVybW9zdCAqL1xuICBzZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uICovXG4gIHJvdXRlczogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0Pjtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoUm91dGUgPSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVDaGFpbjxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIHNlZ21lbnRzOiBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuICByb3V0ZXM6IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBSZXNvbHZlZFByZXBhcmVkUm91dGVDaGFpbjxUVmFyaWFibGVzLCBUQ29udGV4dD47XG5cbi8qKlxuICogQ29tcGxldGUgcm91dGUgZW50cnkgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUVudHJ5PFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIHByZXBhcmVkIG1hdGNoIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMgKi9cbiAgcHJlcGFyZWRNYXRjaDogUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0IHJlc29sdmVkIGZvciB0aGlzIGVudHJ5ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogQ3VycmVudCBicm93c2VyIGxvY2F0aW9uICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogTGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdW5pZmllZCBmaWx0ZXJzIGhhbmRsZSB0eXBlZCBhY2Nlc3MgKi9cbiAgLy8gdHlwZWRRdWVyeT86IG5ldmVyO1xuICAvKiogUGFyc2VkIGZpbHRlcnMgb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgZGVlcGVzdCBhY3RpdmUgcXVlcnlTY2hlbWEgKGlmIGFueSkgKi9cbiAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIHJlZ2V4IG1hdGNoIHJlc3VsdCAqL1xuICBtYXRjaDogUmVnRXhwRXhlY0FycmF5O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqIE1pbmltYWwgZXJhc2VkIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSBydW50aW1lIGhlbHBlcnMgYW5kIHJlY3Vyc2l2ZSByb3V0ZSB0cmVlcy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlTm9kZSA9IHtcbiAgY2hpbGRyZW4/OiByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW107XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmU/OiAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPGFueSwgYW55LCBhbnk+KSA9PiB1bmtub3duO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcmVuZGVyPzogKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxhbnksIGFueSwgYW55LCBhbnk+LFxuICApID0+XG4gICAgfCBSZWFjdEVsZW1lbnRcbiAgICB8IG51bGxcbiAgICB8IHVuZGVmaW5lZFxuICAgIHwgUHJvbWlzZTxSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkPjtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbn07XG5cbi8qKlxuICogQmFzZSB0eXBlIGZvciBkYXRhIHByZXBhcmVkIGJ5IHJvdXRlIHByZXBhcmUgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlUmVzdWx0ID0gdW5rbm93bjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIHBhc3NlZCB0byBhIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlUGFyYW1zPFxuICBUQ29udGV4dCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIHdpdGggZXh0cmFjdGVkIHBhcmFtZXRlcnMgKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgbWF0Y2hlZFJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG4gIC8qKiBSb3V0ZXItbGV2ZWwgY29udGV4dCAqL1xuICBjb250ZXh0OiBUQ29udGV4dDtcbiAgLyoqIFJlc291cmNlIHBhZ2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHMgKi9cbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgLyoqIEV4dHJhY3RlZCBVUkwgcGFyYW1ldGVycyAqL1xuICB2YXJpYWJsZXM6IFRWYXJpYWJsZXM7XG4gIC8qKiBUeXBlZCBxdWVyeSBvYmplY3QgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqIEFsaWFzIGZvciBwcmVwYXJlIGFyZ3MgKGtlcHQgZm9yIHB1YmxpYyBBUEkgY2xhcml0eSkuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmVBcmdzPFxuICBUQ29udGV4dCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IFByZXBhcmVQYXJhbXM8VENvbnRleHQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgZm9yIGEgcm91dGUgYmVmb3JlIHJlbmRlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgZnVuY3Rpb24gcmV0dXJuc1xuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIHBhcmFtczogUHJlcGFyZVBhcmFtczxUQ29udGV4dCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+LFxuICApID0+IE1heWJlUHJvbWlzZTxUUHJlcGFyZWQ+XG4+O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIHJvdXRlIGluIHRoZSByb3V0ZXIuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGU8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZCA9XG4gICAgfCByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW11cbiAgICB8IHVuZGVmaW5lZCxcbj4gPSB7XG4gIC8qKlxuICAgKiBOZXN0ZWQgY2hpbGQgcm91dGVzIG9yIHJlZGlyZWN0cy5cbiAgICpcbiAgICogSU1QT1JUQU5UOiBUaGlzIHVzZWQgdG8gYmUgdHlwZWQgYXMgYChSb3V0ZTxhbnksIFByZXBhcmVSZXN1bHQ+IHwgUmVkaXJlY3QpW11gIHdoaWNoXG4gICAqIHdpZGVuZWQgKGVyYXNlZCkgdGhlIGdlbmVyaWMgcGFyYW1ldGVyIHR5cGVzIChub3RhYmx5IHRoZSBgVFZhcmlhYmxlc2Agb2YgZWFjaFxuICAgKiBjaGlsZCkuIFRoYXQgY2F1c2VkIFR5cGVTY3JpcHQgdG8gdHJlYXQgZXZlcnkgY2hpbGQgcm91dGUncyBgcHJlcGFyZWAgY2FsbGJhY2tcbiAgICogYXMgYWNjZXB0aW5nIHRoZSBkZWZhdWx0IGBQYXJhbURhdGFgIHNoYXBlIChlZmZlY3RpdmVseSBgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLHN0cmluZ3xzdHJpbmdbXT4+YCkuXG4gICAqIFdoZW4gdXNlciBjb2RlIHNwZWNpZmllZCBhIG1vcmUgc3BlY2lmaWMgcGFyYW1ldGVyIG9iamVjdCAoZS5nLiBgeyBzbHVnOiBzdHJpbmcgfWApXG4gICAqIGZvciBhIHBhdGggbGlrZSBgOnNsdWdgLCB0aGUgZnVuY3Rpb24gdHlwZSBiZWNhbWUgbm9u4oCRYXNzaWduYWJsZSBiZWNhdXNlIGl0c1xuICAgKiBwYXJhbWV0ZXIgd2FzIHN0cmljdGVyIHRoYW4gdGhlIHdpZGVuZWQgdmVyc2lvbi4gQnkgc3dpdGNoaW5nIHRvIGBBbnlSb3V0ZWAgd2VcbiAgICogcmV0YWluIGBhbnlgIGluIHRoZSBlcmFzZWQgcG9zaXRpb24gaW5zdGVhZCBvZiBhIGNvbmNyZXRlIGBQYXJhbURhdGFgLCB3aGljaFxuICAgKiBhbGxvd3Mgc3RyaWN0ZXIgY2hpbGQgYHZhcmlhYmxlc2Agc2hhcGVzIHdpdGhvdXQgY29uZmxpY3QuXG4gICAqXG4gICAqIFVzaW5nIGBBbnlSb3V0ZWAgcHVycG9zZWx5IHByZXNlcnZlcyBpbmRlcGVuZGVuY2Ugb2YgZWFjaCByb3V0ZSdzIGdlbmVyaWNcbiAgICogcGFyYW1ldGVycyB3aGlsZSBzdGlsbCBrZWVwaW5nIHJ1bnRpbWUgcmVwcmVzZW50YXRpb24gaWRlbnRpY2FsLlxuICAgKi9cbiAgY2hpbGRyZW4/OiBUQ2hpbGRyZW47XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgYmVmb3JlIHJlbmRlcmluZyAqL1xuICBwcmVwYXJlPzogUm91dGVQcmVwYXJlPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVW5pZmllZCBzY2hlbWEgKGZpbHRlciAvIHF1ZXJ5KSAqL1xuICBxdWVyeVNjaGVtYT86IFM7XG59O1xuXG4vKipcbiAqIFByb3BzIHBhc3NlZCB0byBSb3V0ZUNvbXBvbmVudCBpbnN0YW5jZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVDb21wb25lbnRQcm9wczxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyICovXG4gIGNoaWxkcmVuOiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBSb3V0ZXIgY29udGV4dCBjb250YWluaW5nIG5hdmlnYXRpb24gYW5kIHN0YXRlICovXG4gIHJvdXRlckNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxUVmFyaWFibGVzLCBTLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBUaGUgcm91dGUgY29uZmlndXJhdGlvbiAqL1xuICByb3V0ZTogUm91dGU8dW5rbm93biwgdW5rbm93biwgUGFyYW1EYXRhLCBVbmtub3duUXVlcnlTaGFwZSwgUz47XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciByb3V0ZSBjaGFuZ2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnNjcmliZUNhbGxiYWNrPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gKG5leHRFbnRyeTogUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByZWxvYWRUYXJnZXQgPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSb3V0ZXIgY29udGV4dCB0eXBlIHRoYXQgcHJvdmlkZXMgbmF2aWdhdGlvbiBhbmQgc3RhdGUgbWFuYWdlbWVudC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0aW5nQ29udGV4dFR5cGU8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIEJyb3dzZXIgaGlzdG9yeSBpbnN0YW5jZSBmb3IgbmF2aWdhdGlvbiAqL1xuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeTtcbiAgLyoqIEdldCB0aGUgY3VycmVudCByb3V0ZSBlbnRyeSAqL1xuICBnZXQ6ICgpID0+IFJvdXRlRW50cnk8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+O1xuICAvKiogUHJlbG9hZCBjb2RlIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWRDb2RlOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogUHJlbG9hZCBjb2RlIGFuZCBkYXRhIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWQ6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyAoc2NoZW1hIGRlcml2YWJsZSwgbm90IG5lZWRlZCBpbiBzaWduYXR1cmUpICovXG4gIHN1YnNjcmliZTogKFxuICAgIGNhbGxiYWNrOiBTdWJzY3JpYmVDYWxsYmFjazxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4sXG4gICkgPT4gKCkgPT4gdm9pZDtcbiAgLyoqIE5hdmlnYXRlIHdpdGggb3B0aW9uYWwgcGF0aG5hbWUgYW5kIHR5cGVkL3JhdyBxdWVyeSBvYmplY3QgKi9cbiAgbmF2aWdhdGU6IChvcHRzOiB7XG4gICAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gICAgcXVlcnk/OiBUUXVlcnlTaGFwZTtcbiAgICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIHRoZSBhY3RpdmUgcXVlcnlTY2hlbWEgKi9cbiAgICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gICAgcmVwbGFjZT86IGJvb2xlYW47XG4gIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIFJldHVybiB0eXBlIGZvciByZXNvdXJjZSBwYWdlIGxvYWRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZVJldHVybiA9XG4gIHwgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfVxuICB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0gUm91dGVOb2RlO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGUgPSBSb3V0ZU5vZGU7XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hLFxuICAgIGluZmVyIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZFxuICA+XG4gICAgPyB7XG4gICAgICAgIGNvbnRleHQ6IFRDb250ZXh0O1xuICAgICAgICBwcmVwYXJlZDogVFByZXBhcmVkO1xuICAgICAgICB2YXJpYWJsZXM6IFRWYXJzO1xuICAgICAgICBxdWVyeTogVFF1ZXJ5O1xuICAgICAgICBzY2hlbWE6IFRTY2hlbWE7XG4gICAgICAgIGNoaWxkcmVuOiBUQ2hpbGRyZW47XG4gICAgICB9XG4gICAgOiBuZXZlcjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ByZXBhcmVkJ107XG4vKiogRXh0cmFjdCB0aGUgdmFyaWFibGVzIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBWYXJpYWJsZXNPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+Wyd2YXJpYWJsZXMnXTtcbi8qKiBFeHRyYWN0IHRoZSBxdWVyeSBzaGFwZSB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3F1ZXJ5J107XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFBhdGhPZjxcbiAgUm91dGVVbmlvbjxSb3V0ZXM+XG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSB1bmlvbiAocGVyLXJvdXRlIHByZWNpc2lvbiBpcyBpbnRlbnRpb25hbGx5IGVyYXNlZCBoZXJlKS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gb3JkZXJlZCBwcmVwYXJlZCBzZWdtZW50IHR1cGxlIG9yIGFycmF5IHNoYXBlLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRTZWdtZW50c01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkUm91dGVTZWdtZW50W11cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogRXh0cmFjdCBzY2hlbWEgZnJvbSBhIHJvdXRlICh1bmRlZmluZWQgaWYgYWJzZW50KSAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hT2Y8Uj4gPSBSIGV4dGVuZHMgeyBxdWVyeVNjaGVtYT86IGluZmVyIFMgfVxuICA/IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IFNcbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcblxuLyoqIEZpbHRlcnMgaW5mZXJyZWQgZnJvbSB0aGUgcm91dGUncyBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNPZjxSPiA9XG4gIFNjaGVtYU9mPFI+IGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTY2hlbWFPZjxSPj5cbiAgICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqIE1hcCBwYXRoIC0+IGluZmVycmVkIGZpbHRlcnMgdHlwZSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkQWNjZXNzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIG5ldmVyLFxuICBuZXZlclxuPiAmIHtcbiAgLyoqIFJldHJpZXZlIHRoZSBwcmVwYXJlZCBvYmplY3QgZm9yIGEgY29uY3JldGUgcGF0aCAoaWYgY3VycmVudCBtYXRjaCBpbmNsdWRlcyBpdCkgKi9cbiAgZ2V0UHJlcGFyZWQ6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZDtcbiAgLyoqIFJldHJpZXZlIHRoZSBmdWxsIHByZXBhcmVkIHNlZ21lbnQgY2hhaW4gZm9yIGEgY29uY3JldGUgcGF0aC4gKi9cbiAgZ2V0UHJlcGFyZWRTZWdtZW50czogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdFtdO1xuICAvLyBnZXRUeXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVzZSBmaWx0ZXJzL3F1ZXJ5IGRpcmVjdGx5XG59O1xuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgcGF0aG5hbWU6IFBhdGhzT2Y8Um91dGVzPjtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgZmlsdGVycz86IEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXM+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import type { History, HistoryListener, HistoryLocation } from './types.js';
2
+ export declare function createPath(location: HistoryLocation): string;
3
+ export default class BrowserHistory implements History {
4
+ private __listeners;
5
+ private __pendingDebugContext;
6
+ private __historyIndex;
7
+ private __currentIndex;
8
+ constructor();
9
+ get location(): Location;
10
+ init(): void;
11
+ set(location: HistoryLocation): void;
12
+ push(location: HistoryLocation): void;
13
+ unsubscribe(listener: HistoryListener): void;
14
+ subscribe(listener: HistoryListener): () => void;
15
+ private __notify;
16
+ private __consumePendingDebugContext;
17
+ private __subscribe;
18
+ private __handlePopstate;
19
+ private __ensureStateIndex;
20
+ }
21
+ //# sourceMappingURL=BrowserHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserHistory.d.ts","sourceRoot":"","sources":["../../src/history/BrowserHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAQpB,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAI5D;AAOD,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IAEpD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,qBAAqB,CAAoC;IAEjE,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,cAAc,CAAK;;IAgB3B,IAAW,QAAQ,IAAI,QAAQ,CAU9B;IAKM,IAAI,IAAI,IAAI;IAUZ,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA+BpC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAiCrC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAY5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAYvD,OAAO,CAAC,QAAQ,CAQd;IAEF,OAAO,CAAC,4BAA4B;IAYpC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB,CA2BtB;IAEF,OAAO,CAAC,kBAAkB;CA2B3B"}
@@ -0,0 +1,139 @@
1
+ export function createPath(location) {
2
+ const { pathname, search = '', hash = '' } = location;
3
+ return `${pathname}${search}${hash}`;
4
+ }
5
+ export default class BrowserHistory {
6
+ __listeners = [];
7
+ __pendingDebugContext = null;
8
+ __historyIndex = 0;
9
+ __currentIndex = 0;
10
+ constructor() {
11
+ this.init();
12
+ this.__ensureStateIndex();
13
+ }
14
+ get location() {
15
+ return {
16
+ pathname: window.location.pathname,
17
+ search: window.location.search,
18
+ hash: window.location.hash,
19
+ };
20
+ }
21
+ init() {
22
+ this.__subscribe();
23
+ }
24
+ set(location) {
25
+ const { debugContext, ...rest } = location;
26
+ const path = createPath(rest);
27
+ if (debugContext !== undefined) {
28
+ this.__pendingDebugContext = {
29
+ ...debugContext,
30
+ historyIndex: this.__currentIndex,
31
+ };
32
+ }
33
+ else {
34
+ this.__pendingDebugContext = { historyIndex: this.__currentIndex };
35
+ }
36
+ window.history.replaceState({
37
+ __plumileRouterIndex: this.__currentIndex,
38
+ }, '', path);
39
+ this.__notify(true);
40
+ }
41
+ push(location) {
42
+ const { debugContext, ...rest } = location;
43
+ const path = createPath(rest);
44
+ this.__historyIndex += 1;
45
+ this.__currentIndex = this.__historyIndex;
46
+ if (debugContext !== undefined) {
47
+ this.__pendingDebugContext = {
48
+ ...debugContext,
49
+ historyIndex: this.__currentIndex,
50
+ };
51
+ }
52
+ else {
53
+ this.__pendingDebugContext = { historyIndex: this.__currentIndex };
54
+ }
55
+ window.history.pushState({
56
+ __plumileRouterIndex: this.__currentIndex,
57
+ }, '', path);
58
+ this.__notify(false);
59
+ }
60
+ unsubscribe(listener) {
61
+ this.__listeners = this.__listeners.filter((item) => {
62
+ return item !== listener;
63
+ });
64
+ }
65
+ subscribe(listener) {
66
+ this.__listeners.push(listener);
67
+ return () => {
68
+ this.unsubscribe(listener);
69
+ };
70
+ }
71
+ __notify = (forceRerender) => {
72
+ setTimeout(() => {
73
+ const { location } = this;
74
+ const context = this.__consumePendingDebugContext();
75
+ this.__listeners.forEach((listener) => {
76
+ listener(location, forceRerender, context);
77
+ });
78
+ }, 0);
79
+ };
80
+ __consumePendingDebugContext() {
81
+ if (this.__pendingDebugContext == null) {
82
+ return undefined;
83
+ }
84
+ const context = this.__pendingDebugContext;
85
+ this.__pendingDebugContext = null;
86
+ return context;
87
+ }
88
+ __subscribe() {
89
+ window.addEventListener('popstate', this.__handlePopstate);
90
+ }
91
+ __handlePopstate = (event) => {
92
+ let origin;
93
+ let historyIndex;
94
+ const state = event.state;
95
+ if (state != null && typeof state.__plumileRouterIndex === 'number') {
96
+ historyIndex = state.__plumileRouterIndex;
97
+ if (historyIndex < this.__currentIndex) {
98
+ origin = 'popstate-back';
99
+ }
100
+ else if (historyIndex > this.__currentIndex) {
101
+ origin = 'popstate-forward';
102
+ }
103
+ else {
104
+ origin = 'popstate-unknown';
105
+ }
106
+ this.__currentIndex = historyIndex;
107
+ if (historyIndex > this.__historyIndex) {
108
+ this.__historyIndex = historyIndex;
109
+ }
110
+ }
111
+ else {
112
+ origin = 'external';
113
+ }
114
+ this.__pendingDebugContext = {
115
+ origin,
116
+ trigger: 'popstate',
117
+ historyIndex,
118
+ };
119
+ this.__notify(false);
120
+ };
121
+ __ensureStateIndex() {
122
+ const state = window.history.state;
123
+ if (state != null && typeof state.__plumileRouterIndex === 'number') {
124
+ this.__currentIndex = state.__plumileRouterIndex;
125
+ this.__historyIndex = state.__plumileRouterIndex;
126
+ return;
127
+ }
128
+ const { pathname, search, hash } = window.location;
129
+ let targetUrl = `${pathname}${search}${hash}`;
130
+ if (typeof window.location.href === 'string' &&
131
+ window.location.href !== '') {
132
+ targetUrl = window.location.href;
133
+ }
134
+ window.history.replaceState({
135
+ __plumileRouterIndex: this.__currentIndex,
136
+ }, '', targetUrl);
137
+ }
138
+ }
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3Nlckhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGlzdG9yeS9Ccm93c2VySGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXRELE9BQU8sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFPRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFFekIsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFFcEMscUJBQXFCLEdBQStCLElBQUksQ0FBQztJQUV6RCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFLM0I7UUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBUUQsSUFBVyxRQUFRO1FBSWpCLE9BQU87WUFFTCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDOUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUNKLENBQUM7SUFDM0IsQ0FBQztJQUtNLElBQUk7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQVFNLEdBQUcsQ0FBQyxRQUF5QjtRQUNsQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsUUFFakMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZ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LEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLENBQUMsb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ25ELElBQUksU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUNFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQzNCLENBQUM7WUFDRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUN6QjtZQUNFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxjQUFjO1NBQzFDLEVBQ0QsRUFBRSxFQUNGLFNBQVMsQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBIaXN0b3J5LFxuICBIaXN0b3J5RGVidWdDb250ZXh0LFxuICBIaXN0b3J5TGlzdGVuZXIsXG4gIEhpc3RvcnlMb2NhdGlvbixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBsZXRlIFVSTCBwYXRoIGZyb20gYSBIaXN0b3J5TG9jYXRpb24gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBsb2NhdGlvbiAtIExvY2F0aW9uIG9iamVjdCBjb250YWluaW5nIHBhdGhuYW1lLCBzZWFyY2gsIGFuZCBoYXNoXG4gKiBAcmV0dXJucyBDb21wbGV0ZSBwYXRoIHN0cmluZyBjb21iaW5pbmcgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGgobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGF0aG5hbWUsIHNlYXJjaCA9ICcnLCBoYXNoID0gJycgfSA9IGxvY2F0aW9uO1xuXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YDtcbn1cblxuLyoqXG4gKiBCcm93c2VyIGhpc3RvcnkgaW1wbGVtZW50YXRpb24gdXNpbmcgdGhlIEhUTUw1IEhpc3RvcnkgQVBJLlxuICogTWFuYWdlcyBicm93c2VyIG5hdmlnYXRpb24gc3RhdGUgYW5kIHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2VcbiAqIGZvciBwcm9ncmFtbWF0aWMgbmF2aWdhdGlvbiBhbmQgbG9jYXRpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJyb3dzZXJIaXN0b3J5IGltcGxlbWVudHMgSGlzdG9yeSB7XG4gIC8qKiBBcnJheSBvZiBsaXN0ZW5lcnMgZm9yIGxvY2F0aW9uIGNoYW5nZXMgKi9cbiAgcHJpdmF0ZSBfX2xpc3RlbmVyczogSGlzdG9yeUxpc3RlbmVyW10gPSBbXTtcbiAgLyoqIERlYnVnIG1ldGFkYXRhIGNhcHR1cmVkIGZvciB0aGUgbmV4dCBub3RpZmljYXRpb24gKi9cbiAgcHJpdmF0ZSBfX3BlbmRpbmdEZWJ1Z0NvbnRleHQ6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCBudWxsID0gbnVsbDtcbiAgLyoqIE1vbm90b25pYyBjb3VudGVyIGF0dGFjaGVkIHRvIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgKi9cbiAgcHJpdmF0ZSBfX2hpc3RvcnlJbmRleCA9IDA7XG4gIC8qKiBDdXJyZW50IGluZGV4IHJlcHJlc2VudGluZyB0aGUgYWN0aXZlIGVudHJ5ICovXG4gIHByaXZhdGUgX19jdXJyZW50SW5kZXggPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJyb3dzZXJIaXN0b3J5IGluc3RhbmNlIGFuZCBpbml0aWFsaXplcyBldmVudCBsaXN0ZW5lcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5fX2Vuc3VyZVN0YXRlSW5kZXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGJyb3dzZXIgbG9jYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgd2luZG93LmxvY2F0aW9uIG9iamVjdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgLy8gU29tZSB0ZXN0IERPTSBlbnZpcm9ubWVudHMgKGUuZy4gaGFwcHktZG9tKSBleHBvc2Ugbm9uLWVudW1lcmFibGVcbiAgICAvLyBMb2NhdGlvbiBwcm9wZXJ0aWVzIHNvIGEgc2ltcGxlIHNwcmVhZCByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC5cbiAgICAvLyBSZXR1cm4gYW4gZXhwbGljaXQgcGxhaW4gb2JqZWN0IHdpdGggdGhlIGZpZWxkcyB3ZSByZWx5IG9uLlxuICAgIHJldHVybiB7XG4gICAgICAvLyBwYXRobmFtZS9zZWFyY2gvaGFzaCBhcmUgc3VmZmljaWVudCBmb3Igb3VyIHJvdXRlciBsb2dpY1xuICAgICAgcGF0aG5hbWU6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIHNlYXJjaDogd2luZG93LmxvY2F0aW9uLnNlYXJjaCxcbiAgICAgIGhhc2g6IHdpbmRvdy5sb2NhdGlvbi5oYXNoLFxuICAgIH0gYXMgdW5rbm93biBhcyBMb2NhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaGlzdG9yeSBpbnN0YW5jZSBieSBzZXR0aW5nIHVwIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX19zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5IHdpdGggYSBuZXcgbG9jYXRpb24uXG4gICAqIFRoaXMgdXBkYXRlcyB0aGUgVVJMIHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gTmV3IGxvY2F0aW9uIHRvIHNldFxuICAgKi9cbiAgcHVibGljIHNldChsb2NhdGlvbjogSGlzdG9yeUxvY2F0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBkZWJ1Z0NvbnRleHQsIC4uLnJlc3QgfSA9IGxvY2F0aW9uIGFzIEhpc3RvcnlMb2NhdGlvbiAmIHtcbiAgICAgIGRlYnVnQ29udGV4dD86IEhpc3RvcnlEZWJ1Z0NvbnRleHQ7XG4gICAgfTtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aChyZXN0KTtcblxuICAgIGlmIChkZWJ1Z0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICAgIC4uLmRlYnVnQ29udGV4dCxcbiAgICAgICAgaGlzdG9yeUluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7IGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCB9O1xuICAgIH1cblxuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgX19wbHVtaWxlUm91dGVySW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXgsXG4gICAgICB9LFxuICAgICAgJycsXG4gICAgICBwYXRoLFxuICAgICk7XG4gICAgdGhpcy5fX25vdGlmeSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gYSBuZXcgbG9jYXRpb24gYnkgcHVzaGluZyBhIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZW50cnkgaW4gdGhlIGJyb3dzZXIncyBoaXN0b3J5IHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gLSBMb2NhdGlvbiB0byBuYXZpZ2F0ZSB0b1xuICAgKi9cbiAgcHVibGljIHB1c2gobG9jYXRpb246IEhpc3RvcnlMb2NhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHsgZGVidWdDb250ZXh0LCAuLi5yZXN0IH0gPSBsb2NhdGlvbiBhcyBIaXN0b3J5TG9jYXRpb24gJiB7XG4gICAgICBkZWJ1Z0NvbnRleHQ/OiBIaXN0b3J5RGVidWdDb250ZXh0O1xuICAgIH07XG4gICAgY29uc3QgcGF0aCA9IGNyZWF0ZVBhdGgocmVzdCk7XG5cbiAgICB0aGlzLl9faGlzdG9yeUluZGV4ICs9IDE7XG4gICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IHRoaXMuX19oaXN0b3J5SW5kZXg7XG5cbiAgICBpZiAoZGVidWdDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0ge1xuICAgICAgICAuLi5kZWJ1Z0NvbnRleHQsXG4gICAgICAgIGhpc3RvcnlJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19wZW5kaW5nRGVidWdDb250ZXh0ID0geyBoaXN0b3J5SW5kZXg6IHRoaXMuX19jdXJyZW50SW5kZXggfTtcbiAgICB9XG5cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoXG4gICAgICB7XG4gICAgICAgIF9fcGx1bWlsZVJvdXRlckluZGV4OiB0aGlzLl9fY3VycmVudEluZGV4LFxuICAgICAgfSxcbiAgICAgICcnLFxuICAgICAgcGF0aCxcbiAgICApO1xuICAgIHRoaXMuX19ub3RpZnkoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBsaXN0ZW5lciBmcm9tIHRoZSBoaXN0b3J5IGNoYW5nZSBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gbGlzdGVuZXIgLSBMaXN0ZW5lciBmdW5jdGlvbiB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyB1bnN1YnNjcmliZShsaXN0ZW5lcjogSGlzdG9yeUxpc3RlbmVyKTogdm9pZCB7XG4gICAgdGhpcy5fX2xpc3RlbmVycyA9IHRoaXMuX19saXN0ZW5lcnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gaXRlbSAhPT0gbGlzdGVuZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBoaXN0b3J5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0ZW5lciAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBsb2NhdGlvbiBjaGFuZ2VzXG4gICAqIEByZXR1cm5zIFVuc3Vic2NyaWJlIGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBIaXN0b3J5TGlzdGVuZXIpOiAoKSA9PiB2b2lkIHtcbiAgICB0aGlzLl9fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKGxpc3RlbmVyKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIGFsbCBsaXN0ZW5lcnMgb2YgYSBsb2NhdGlvbiBjaGFuZ2UuXG4gICAqXG4gICAqIFVzZXMgc2V0VGltZW91dCB0byBlbnN1cmUgdGhlIG5vdGlmaWNhdGlvbiBoYXBwZW5zIGFmdGVyIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAgICovXG4gIHByaXZhdGUgX19ub3RpZnkgPSAoZm9yY2VSZXJlbmRlcjogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBsb2NhdGlvbiB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9fY29uc3VtZVBlbmRpbmdEZWJ1Z0NvbnRleHQoKTtcbiAgICAgIHRoaXMuX19saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIobG9jYXRpb24sIGZvcmNlUmVyZW5kZXIsIGNvbnRleHQpO1xuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2NvbnN1bWVQZW5kaW5nRGVidWdDb250ZXh0KCk6IEhpc3RvcnlEZWJ1Z0NvbnRleHQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9fcGVuZGluZ0RlYnVnQ29udGV4dCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQ7XG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBvcHN0YXRlIGV2ZW50IGxpc3RlbmVyIGZvciBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfX3N1YnNjcmliZSgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLl9faGFuZGxlUG9wc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfX2hhbmRsZVBvcHN0YXRlID0gKGV2ZW50OiBQb3BTdGF0ZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgbGV0IG9yaWdpbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBoaXN0b3J5SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzdGF0ZSA9IGV2ZW50LnN0YXRlIGFzIHsgX19wbHVtaWxlUm91dGVySW5kZXg/OiBudW1iZXIgfSB8IG51bGw7XG4gICAgaWYgKHN0YXRlICE9IG51bGwgJiYgdHlwZW9mIHN0YXRlLl9fcGx1bWlsZVJvdXRlckluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgaGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICBpZiAoaGlzdG9yeUluZGV4IDwgdGhpcy5fX2N1cnJlbnRJbmRleCkge1xuICAgICAgICBvcmlnaW4gPSAncG9wc3RhdGUtYmFjayc7XG4gICAgICB9IGVsc2UgaWYgKGhpc3RvcnlJbmRleCA+IHRoaXMuX19jdXJyZW50SW5kZXgpIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLWZvcndhcmQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JpZ2luID0gJ3BvcHN0YXRlLXVua25vd24nO1xuICAgICAgfVxuICAgICAgdGhpcy5fX2N1cnJlbnRJbmRleCA9IGhpc3RvcnlJbmRleDtcbiAgICAgIGlmIChoaXN0b3J5SW5kZXggPiB0aGlzLl9faGlzdG9yeUluZGV4KSB7XG4gICAgICAgIHRoaXMuX19oaXN0b3J5SW5kZXggPSBoaXN0b3J5SW5kZXg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG9yaWdpbiA9ICdleHRlcm5hbCc7XG4gICAgfVxuXG4gICAgdGhpcy5fX3BlbmRpbmdEZWJ1Z0NvbnRleHQgPSB7XG4gICAgICBvcmlnaW4sXG4gICAgICB0cmlnZ2VyOiAncG9wc3RhdGUnLFxuICAgICAgaGlzdG9yeUluZGV4LFxuICAgIH07XG4gICAgdGhpcy5fX25vdGlmeShmYWxzZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBfX2Vuc3VyZVN0YXRlSW5kZXgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5zdGF0ZSBhcyB7XG4gICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleD86IG51bWJlcjtcbiAgICB9IHwgbnVsbDtcbiAgICBpZiAoc3RhdGUgIT0gbnVsbCAmJiB0eXBlb2Ygc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl9fY3VycmVudEluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICB0aGlzLl9faGlzdG9yeUluZGV4ID0gc3RhdGUuX19wbHVtaWxlUm91dGVySW5kZXg7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBwYXRobmFtZSwgc2VhcmNoLCBoYXNoIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgbGV0IHRhcmdldFVybCA9IGAke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmICE9PSAnJ1xuICAgICkge1xuICAgICAgdGFyZ2V0VXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgfVxuXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBfX3BsdW1pbGVSb3V0ZXJJbmRleDogdGhpcy5fX2N1cnJlbnRJbmRleCxcbiAgICAgIH0sXG4gICAgICAnJyxcbiAgICAgIHRhcmdldFVybCxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { default as BrowserHistory } from './BrowserHistory.js';
2
+ export type * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGhE,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as BrowserHistory } from './BrowserHistory.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGlzdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQnJvd3NlciBoaXN0b3J5IGltcGxlbWVudGF0aW9uIHVzaW5nIEhUTUw1IEhpc3RvcnkgQVBJXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnLi9Ccm93c2VySGlzdG9yeS5qcyc7XG5cbi8vIFR5cGVTY3JpcHQgdHlwZXMgZm9yIGhpc3RvcnkgbWFuYWdlbWVudFxuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzLmpzJztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ export type HistoryDebugContext = {
2
+ origin?: string;
3
+ trigger?: string;
4
+ historyIndex?: number;
5
+ };
6
+ export type HistoryListener = (location: Location, forceRerender: boolean, debugContext?: HistoryDebugContext) => void;
7
+ export type HistoryLocation = {
8
+ hash?: string;
9
+ pathname: string;
10
+ search?: string;
11
+ debugContext?: HistoryDebugContext;
12
+ };
13
+ export interface History {
14
+ init: () => void;
15
+ subscribe: (listener: HistoryListener) => () => void;
16
+ push: (location: HistoryLocation) => void;
17
+ set: (location: HistoryLocation) => void;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/history/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,mBAAmB,KAC/B,IAAI,CAAC;AAMV,MAAM,MAAM,eAAe,GAAG;IAE5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAMF,MAAM,WAAW,OAAO;IAEtB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IAErD,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAE1C,GAAG,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1C"}