bruce-models 0.7.5 → 0.7.6

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 (100) hide show
  1. package/dist/bruce-models.es5.js +176 -11
  2. package/dist/bruce-models.es5.js.map +1 -1
  3. package/dist/bruce-models.umd.js +173 -9
  4. package/dist/bruce-models.umd.js.map +1 -1
  5. package/dist/lib/account/account.js +244 -244
  6. package/dist/lib/ann-document/ann-document.js +116 -116
  7. package/dist/lib/api/abstract-api.js +267 -267
  8. package/dist/lib/api/api.js +85 -85
  9. package/dist/lib/api/bruce-api.js +228 -202
  10. package/dist/lib/api/bruce-api.js.map +1 -1
  11. package/dist/lib/api/cam-api.js +132 -132
  12. package/dist/lib/api/cam-api.js.map +1 -1
  13. package/dist/lib/api/global-api.js +131 -131
  14. package/dist/lib/api/global-api.js.map +1 -1
  15. package/dist/lib/api/idm-api.js +132 -132
  16. package/dist/lib/api/idm-api.js.map +1 -1
  17. package/dist/lib/bruce-models.js +84 -83
  18. package/dist/lib/bruce-models.js.map +1 -1
  19. package/dist/lib/calculator/calculator.js +158 -158
  20. package/dist/lib/client-file/client-file.js +188 -188
  21. package/dist/lib/common/bounds.js +2 -2
  22. package/dist/lib/common/bruce-event.js +48 -48
  23. package/dist/lib/common/bruce-variable.js +54 -54
  24. package/dist/lib/common/cache.js +86 -86
  25. package/dist/lib/common/camera.js +11 -11
  26. package/dist/lib/common/cartes.js +55 -55
  27. package/dist/lib/common/carto.js +60 -60
  28. package/dist/lib/common/color.js +86 -86
  29. package/dist/lib/common/delay-queue.js +60 -60
  30. package/dist/lib/common/dictionary.js +2 -2
  31. package/dist/lib/common/geometry.js +120 -120
  32. package/dist/lib/common/transform.js +2 -2
  33. package/dist/lib/common/utc.js +39 -39
  34. package/dist/lib/custom-form/custom-form.js +136 -136
  35. package/dist/lib/data-lab/data-lab.js +90 -90
  36. package/dist/lib/entity/entity-attachment-type.js +132 -132
  37. package/dist/lib/entity/entity-attachment.js +208 -208
  38. package/dist/lib/entity/entity-comment.js +132 -132
  39. package/dist/lib/entity/entity-coords.js +181 -181
  40. package/dist/lib/entity/entity-link.js +132 -132
  41. package/dist/lib/entity/entity-lod.js +189 -189
  42. package/dist/lib/entity/entity-relation-type.js +150 -150
  43. package/dist/lib/entity/entity-relation.js +189 -189
  44. package/dist/lib/entity/entity-source.js +176 -176
  45. package/dist/lib/entity/entity-tag.js +229 -229
  46. package/dist/lib/entity/entity-type.js +163 -163
  47. package/dist/lib/entity/entity.js +358 -358
  48. package/dist/lib/entity/getters/batched-data-getter.js +91 -91
  49. package/dist/lib/entity/getters/entity-filter-getter.js +344 -344
  50. package/dist/lib/entity/getters/entity-globe.js +135 -135
  51. package/dist/lib/entity/getters/view-monitor.js +2 -2
  52. package/dist/lib/import/import-cad.js +82 -82
  53. package/dist/lib/import/import-csv.js +51 -51
  54. package/dist/lib/import/import-json.js +51 -51
  55. package/dist/lib/import/import-kml.js +51 -51
  56. package/dist/lib/import/imported-file.js +121 -121
  57. package/dist/lib/markup/markup.js +40 -40
  58. package/dist/lib/program-key/program-key.js +152 -152
  59. package/dist/lib/project/menu-item.js +115 -115
  60. package/dist/lib/project/project-view-bookmark.js +183 -172
  61. package/dist/lib/project/project-view-bookmark.js.map +1 -1
  62. package/dist/lib/project/{project-view-tile-source.js → project-view-legacy-tile.js} +116 -116
  63. package/dist/lib/project/project-view-legacy-tile.js.map +1 -0
  64. package/dist/lib/project/project-view-tile.js +120 -0
  65. package/dist/lib/project/project-view-tile.js.map +1 -0
  66. package/dist/lib/project/project-view.js +177 -166
  67. package/dist/lib/project/project-view.js.map +1 -1
  68. package/dist/lib/project/zoom-control.js +17 -17
  69. package/dist/lib/server/pending-action.js +106 -106
  70. package/dist/lib/server/task.js +113 -113
  71. package/dist/lib/style/style.js +152 -152
  72. package/dist/lib/tileset/tileset-cad.js +2 -2
  73. package/dist/lib/tileset/tileset-entities-map-tiles.js +18 -18
  74. package/dist/lib/tileset/tileset-entities.js +2 -2
  75. package/dist/lib/tileset/tileset-ext-map-tiles.js +17 -17
  76. package/dist/lib/tileset/tileset-ext-terrain-tiles.js +2 -2
  77. package/dist/lib/tileset/tileset-map-tiles.js +2 -2
  78. package/dist/lib/tileset/tileset-pointcloud.js +2 -2
  79. package/dist/lib/tileset/tileset-terrain-tiles.js +2 -2
  80. package/dist/lib/tileset/tileset.js +403 -403
  81. package/dist/lib/user/permission.js +20 -20
  82. package/dist/lib/user/session.js +160 -160
  83. package/dist/lib/user/user-group.js +139 -139
  84. package/dist/lib/user/user.js +451 -451
  85. package/dist/lib/util/encrypt-utils.js +20 -20
  86. package/dist/lib/util/math-utils.js +41 -41
  87. package/dist/lib/util/object-utils.js +17 -17
  88. package/dist/lib/util/path-utils.js +61 -61
  89. package/dist/lib/util/url-utils.js +107 -107
  90. package/dist/types/api/bruce-api.d.ts +22 -2
  91. package/dist/types/api/cam-api.d.ts +1 -1
  92. package/dist/types/api/global-api.d.ts +1 -1
  93. package/dist/types/api/idm-api.d.ts +1 -1
  94. package/dist/types/bruce-models.d.ts +2 -1
  95. package/dist/types/project/project-view-bookmark.d.ts +85 -36
  96. package/dist/types/project/{project-view-tile-source.d.ts → project-view-legacy-tile.d.ts} +1 -1
  97. package/dist/types/project/project-view-tile.d.ts +68 -0
  98. package/dist/types/project/project-view.d.ts +64 -39
  99. package/package.json +1 -1
  100. package/dist/lib/project/project-view-tile-source.js.map +0 -1
@@ -2,6 +2,7 @@ import { BruceApi } from "../api/bruce-api";
2
2
  import { Camera } from "../common/camera";
3
3
  import { UTC } from "../common/utc";
4
4
  import { Markup } from "../markup/markup";
5
+ import { ProjectViewTile } from "./project-view-tile";
5
6
  /**
6
7
  * Describe the "Project View Bookmark" concept within Bruce.
7
8
  * This is referred to as "slides" in older code.
@@ -11,47 +12,95 @@ import { Markup } from "../markup/markup";
11
12
  export declare namespace ProjectViewBookmark {
12
13
  function GetCacheKey(viewId: string, bookmarkId: string): string;
13
14
  function GetListCacheKey(viewId: string): string;
14
- interface IBookmarkImagery {
15
- title: string;
16
- contrast: number;
17
- hue: number;
18
- saturation: number;
19
- gamma: number;
20
- brightness: number;
21
- alpha: number;
22
- }
23
- interface IBookmarkSettings {
24
- selectedItemIds?: string[];
25
- order?: number;
26
- hiddenEntityIds?: string[];
27
- drawnRelationEntityIDs?: string[];
28
- imagery?: IBookmarkImagery[];
29
- terrain?: string;
30
- globeColor?: string;
31
- shadows?: boolean;
32
- groundOcclusion?: boolean;
33
- ambientOcclusion?: boolean;
34
- markup?: Markup.IMarkup;
35
- cameraFrustum?: Camera.EFrustum;
36
- displayTimeline?: boolean;
37
- timelineSettings?: any;
38
- }
39
- interface IBookmark {
15
+ const DEFAULT_DATA_VERSION = 1;
16
+ interface IBookmarkMeta {
40
17
  ID?: string;
41
- Camera?: any;
42
- "Created.ByUser.ID"?: string;
43
- "Created.Date"?: UTC.IUTC;
44
- Note?: string;
45
- Settings?: IBookmarkSettings;
46
18
  Title?: string;
47
- "UI.View.ID"?: string;
48
- DisplayOrder?: number;
19
+ Note?: string;
49
20
  "Screenshot.ClientFile.ID"?: string;
21
+ "UI.View.ID"?: string;
22
+ "Created.ByUser.ID"?: string;
23
+ "Created.Date"?: UTC.IUTC;
50
24
  "UI.SlideGroup.ID"?: number;
25
+ DataVersion: number;
26
+ }
27
+ type Bookmark = V1.IBookmark | V2.IBookmark;
28
+ namespace V1 {
29
+ const DATA_VERSION = 1;
30
+ interface IBookmark extends IBookmarkMeta {
31
+ Camera?: ICamera;
32
+ DisplayOrder?: number;
33
+ Settings?: ISettings;
34
+ }
35
+ interface IBookmarkImagery {
36
+ title: string;
37
+ contrast: number;
38
+ hue: number;
39
+ saturation: number;
40
+ gamma: number;
41
+ brightness: number;
42
+ alpha: number;
43
+ }
44
+ interface ISettings {
45
+ selectedItemIds?: string[];
46
+ order?: number;
47
+ hiddenEntityIds?: string[];
48
+ drawnRelationEntityIDs?: string[];
49
+ imagery?: IBookmarkImagery[];
50
+ terrain?: string;
51
+ globeColor?: string;
52
+ shadows?: boolean;
53
+ groundOcclusion?: boolean;
54
+ ambientOcclusion?: boolean;
55
+ markup?: Markup.IMarkup;
56
+ cameraFrustum?: Camera.EFrustum;
57
+ displayTimeline?: boolean;
58
+ timelineSettings?: any;
59
+ }
60
+ /**
61
+ * Lat,lon is in degrees.
62
+ * Altitude is meters relative to ground.
63
+ * Heading, pitch, roll are in radians.
64
+ */
65
+ interface ICamera {
66
+ position: {
67
+ latitude: number;
68
+ longitude: number;
69
+ height: number;
70
+ };
71
+ heading: number;
72
+ pitch: number;
73
+ roll: number;
74
+ }
75
+ }
76
+ namespace V2 {
77
+ const DATA_VERSION = 2;
78
+ interface IBookmark extends IBookmarkMeta {
79
+ Camera?: ICamera;
80
+ DisplayOrder?: number;
81
+ Settings?: ISettings;
82
+ }
83
+ interface ISettings {
84
+ menuItemIds?: string[];
85
+ groundOcclusion?: boolean;
86
+ imagery?: ProjectViewTile.IBookmarkImagery[];
87
+ terrain?: ProjectViewTile.IBookmarkTerrain;
88
+ globeColor?: string;
89
+ }
90
+ interface ICamera {
91
+ altitude: number;
92
+ latitude: number;
93
+ longitude: number;
94
+ heading: number;
95
+ pitch: number;
96
+ roll: number;
97
+ transition?: number;
98
+ cameraFrustum?: Camera.EFrustum;
99
+ }
51
100
  }
52
- function Get(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<IBookmark>;
101
+ function Get(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<Bookmark>;
53
102
  function Delete(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<void>;
54
- function GetList(api: BruceApi.Api, viewId: string): Promise<IBookmark[]>;
55
- function Update(api: BruceApi.Api, viewId: string, data: IBookmark): Promise<IBookmark>;
103
+ function GetList(api: BruceApi.Api, viewId: string): Promise<Bookmark[]>;
104
+ function Update(api: BruceApi.Api, viewId: string, data: Bookmark): Promise<Bookmark>;
56
105
  function SetOrder(api: BruceApi.Api, viewId: string, bookmarkIds: string[]): Promise<void>;
57
106
  }
@@ -4,7 +4,7 @@ import { BruceApi } from "../api/bruce-api";
4
4
  * This is a concept we want to trash as we're moving towards storing tileset ids instead.
5
5
  * This will help at least understand and manage this dying concept.
6
6
  */
7
- export declare namespace ProjectViewTileSource {
7
+ export declare namespace ProjectViewLegacyTile {
8
8
  interface ISource {
9
9
  SourceUrl?: string;
10
10
  IsEnabled?: boolean;
@@ -0,0 +1,68 @@
1
+ export declare namespace ProjectViewTile {
2
+ type MapTileId = string | EDefaultImagery;
3
+ type TerrainTileId = string | EDefaultTerrain;
4
+ interface ITileMeta {
5
+ accountId?: string;
6
+ tilesetId: string;
7
+ }
8
+ interface IViewTerrain extends ITileMeta {
9
+ tilesetId: TerrainTileId;
10
+ }
11
+ interface IViewImagery extends ITileMeta {
12
+ tilesetId: MapTileId;
13
+ }
14
+ interface IBookmarkImagery {
15
+ tilesetId: MapTileId;
16
+ accountId: string;
17
+ alpha: number;
18
+ brightness: number;
19
+ saturation: number;
20
+ contrast: number;
21
+ gamma: number;
22
+ hue: number;
23
+ }
24
+ interface IBookmarkTerrain {
25
+ tilesetId: TerrainTileId;
26
+ accountId: string;
27
+ }
28
+ enum EDefaultImagery {
29
+ BingMapsAerial = "bingmapsaerial",
30
+ BingMapsAerialWithLabels = "bingmapsaerialwithlabels",
31
+ BingMapsRoads = "bingmapsroads",
32
+ MapboxSatellite = "mapboxsatellite",
33
+ MapBoxStreets = "mapboxstreets",
34
+ MapBoxStreetsClassic = "mapboxstreetsclassic",
35
+ EsriWorldImagery = "esriworldimagery",
36
+ EsriWorldStreetMap = "esriworldstreetmap",
37
+ EsriNationalGeographic = "esrinationalgeographic",
38
+ OpenStreetMap = "openstreetmap",
39
+ StamenWaterColor = "stamenwatercolor",
40
+ StamenToner = "stamentoner",
41
+ Grid = "grid"
42
+ }
43
+ interface IDefaultImagery {
44
+ id: EDefaultImagery;
45
+ name: string;
46
+ iconUrl?: string;
47
+ }
48
+ /**
49
+ * Prepared array for UI.
50
+ * TODO: Im not happy with icon urls sitting in the code. I'd prefer we ship these icons in the library as files.
51
+ */
52
+ const DefaultImagery: IDefaultImagery[];
53
+ enum EDefaultTerrain {
54
+ CesiumWorldTerrain = "cesiumworldterrain",
55
+ FlatTerrain = "flatterrain",
56
+ LINZ = "linz"
57
+ }
58
+ interface IDefaultTerrain {
59
+ id: EDefaultTerrain;
60
+ name: string;
61
+ iconUrl?: string;
62
+ }
63
+ /**
64
+ * Prepared array for UI.
65
+ * TODO: Im not happy with icon urls sitting in the code. I'd prefer we ship these icons in the library as files.
66
+ */
67
+ const DefaultTerrains: IDefaultTerrain[];
68
+ }
@@ -1,7 +1,9 @@
1
1
  import { BruceApi } from "../api/bruce-api";
2
2
  import { UTC } from "../common/utc";
3
3
  import { MenuItem } from "./menu-item";
4
- import { ProjectViewTileSource } from "./project-view-tile-source";
4
+ import { ProjectViewLegacyTile } from "./project-view-legacy-tile";
5
+ import { ProjectViewTile } from "./project-view-tile";
6
+ import { ProjectViewBookmark } from "./project-view-bookmark";
5
7
  /**
6
8
  * Describes the "Project View" concept within Bruce.
7
9
  * A project view is a collection of settings for a visualization application we support.
@@ -10,54 +12,77 @@ import { ProjectViewTileSource } from "./project-view-tile-source";
10
12
  export declare namespace ProjectView {
11
13
  function GetCacheKey(viewId: string): string;
12
14
  function GetListCacheKey(): string;
13
- interface IView {
15
+ const DEFAULT_DATA_VERSION = 1;
16
+ interface IViewMeta {
14
17
  ID?: string;
15
18
  Name: string;
16
19
  Description?: string;
17
20
  Feature?: string[];
18
21
  "CreatedByUser.ID"?: string;
19
22
  CreatedTime?: UTC.IUTC;
20
- Settings?: IViewSettings;
21
23
  DefaultUISlideID?: string;
22
24
  CreatedByUIVersion?: string;
25
+ DataVersion: number;
23
26
  }
24
- interface IShadowSettings {
25
- IsShadowEnabled: boolean;
26
- IsShadowSoft: boolean;
27
- ShadowSampleSize: number;
27
+ type View = V1.IView | V2.IView;
28
+ namespace V1 {
29
+ const DATA_VERSION = 1;
30
+ interface IShadowSettings {
31
+ IsShadowEnabled: boolean;
32
+ IsShadowSoft: boolean;
33
+ ShadowSampleSize: number;
34
+ }
35
+ interface ISettings {
36
+ BookmarkTransitionSpeed: number;
37
+ Camera: any;
38
+ CameraFrustum: number;
39
+ CesiumMapSources: ProjectViewLegacyTile.IMapSource[];
40
+ CesiumTerrainSources: ProjectViewLegacyTile.ITerrainSource[];
41
+ ControlsSettings: any;
42
+ DefaultMapTiles: string;
43
+ DefaultTerrain: string;
44
+ DisplayTimeline: boolean;
45
+ GroundOcclusion: boolean;
46
+ Extensions: any;
47
+ GlobeColor: string;
48
+ SelectionHighlightColor?: string;
49
+ LayersMenu?: MenuItem.IItem[];
50
+ OASettings?: any;
51
+ LogoImage: any;
52
+ LegendImage: any;
53
+ IsRestricted: boolean;
54
+ IsLoginRequired: boolean;
55
+ TilesetBackfaceCulling: boolean;
56
+ TopPanelComponents?: string[];
57
+ LeftPanelComponents?: string[];
58
+ PostProcessFXAA?: boolean;
59
+ Shadows: boolean;
60
+ Shadow: {
61
+ StaticCamera: IShadowSettings;
62
+ MovingCamera: IShadowSettings;
63
+ };
64
+ }
65
+ interface IView extends IViewMeta {
66
+ Settings: ISettings;
67
+ }
28
68
  }
29
- interface IViewSettings {
30
- BookmarkTransitionSpeed: number;
31
- Camera: any;
32
- CameraFrustum: number;
33
- CesiumMapSources: ProjectViewTileSource.IMapSource[];
34
- CesiumTerrainSources: ProjectViewTileSource.ITerrainSource[];
35
- ControlsSettings: any;
36
- DefaultMapTiles: string;
37
- DefaultTerrain: string;
38
- DisplayTimeline: boolean;
39
- GroundOcclusion: boolean;
40
- Extensions: any;
41
- GlobeColor: string;
42
- SelectionHighlightColor?: string;
43
- LayersMenu?: MenuItem.IItem[];
44
- OASettings?: any;
45
- LogoImage: any;
46
- LegendImage: any;
47
- IsRestricted: boolean;
48
- IsLoginRequired: boolean;
49
- TilesetBackfaceCulling: boolean;
50
- TopPanelComponents?: string[];
51
- LeftPanelComponents?: string[];
52
- PostProcessFXAA?: boolean;
53
- Shadows: boolean;
54
- Shadow: {
55
- StaticCamera: IShadowSettings;
56
- MovingCamera: IShadowSettings;
57
- };
69
+ namespace V2 {
70
+ const DATA_VERSION = 2;
71
+ interface ISettings {
72
+ menuItems?: MenuItem.IItem[];
73
+ imageries?: ProjectViewTile.IViewImagery[];
74
+ terrains?: ProjectViewTile.IViewTerrain[];
75
+ defaults?: {
76
+ camera?: ProjectViewBookmark.V2.ICamera;
77
+ settings?: ProjectViewBookmark.V2.ISettings;
78
+ };
79
+ }
80
+ interface IView extends IViewMeta {
81
+ Settings: ISettings;
82
+ }
58
83
  }
59
- function Get(api: BruceApi.Api, viewId: string): Promise<IView>;
60
- function GetList(api: BruceApi.Api): Promise<IView[]>;
84
+ function Get(api: BruceApi.Api, viewId: string): Promise<View>;
85
+ function GetList(api: BruceApi.Api): Promise<View[]>;
61
86
  function Delete(api: BruceApi.Api, viewId: string): Promise<void>;
62
- function Update(api: BruceApi.Api, data: IView): Promise<IView>;
87
+ function Update(api: BruceApi.Api, data: View): Promise<View>;
63
88
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-models",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-models.umd.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-view-tile-source.js","sourceRoot":"","sources":["../../../src/project/project-view-tile-source.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAiC;AAEjC,+CAA6C;AAE7C,SAAe,mBAAmB,CAAC,SAA2B;;;;;;wBAC7C,qBAAM,0BAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAA;;oBAAjG,IAAI,GAAG,SAA0F;oBACvG,4BAAO,IAAI,CAAC,QAAQ,mCAA+B,EAAE,EAAC;;;;CACzD;AAED,SAAS,qBAAqB,CAAC,KAAsC,EAAE,YAA2C,EAAE,YAAqB;IACrI,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAA5B,CAA4B,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACZ,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;KAC/B;SACI,IAAI,YAAY,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5B;AACL,CAAC;AAED;;;;GAIG;AACH,IAAiB,qBAAqB,CA8CrC;AA9CD,WAAiB,qBAAqB;IA2BlC,SAAsB,oBAAoB,CAAC,MAAwB,EAAE,KAAmB,EAAE,YAAqB;;;;;;4BAC1F,qBAAM,mBAAmB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,QAAQ,GAAG,SAAiC;wBAC5C,IAAI,SAAG,QAAQ,CAAC,gBAAgB,mCAAI,EAAE,CAAC;wBAC7C,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5B,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC1B,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;yBACzD;wBACD,sBAAO,EAAE,EAAC;;;;KACb;IARqB,0CAAoB,uBAQzC,CAAA;IAED,SAAsB,wBAAwB,CAAC,MAAwB,EAAE,KAAuB,EAAE,YAAqB;;;;;;4BAClG,qBAAM,mBAAmB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,QAAQ,GAAG,SAAiC;wBAC5C,QAAQ,SAAG,QAAQ,CAAC,oBAAoB,mCAAI,EAAE,CAAC;wBACrD,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAClC,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;yBAC7D;wBACD,sBAAO,EAAE,EAAC;;;;KACb;IARqB,8CAAwB,2BAQ7C,CAAA;AACL,CAAC,EA9CgB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA8CrC"}